java基础练习题及答案

【程序1】

題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一

对兔子,假如兔子都不死,问每个月的兔子总数为多少?

刚开始真的无从下手,这么难的,怎么可以说是基础呢,感觉这些应该是逻辑分析很强的,第一个月只有一对兔子,第二个月还是只有一对兔子,第三个月,就有两对了,第四个月3对,第五个月5对,第六个月8对,第七个月是13对。。。。。。规律出来了,你们发了没?

[java]

1. public class Example1{

2. public static void main(String args[]){

3. //i是表示月份的,这里计算了36个月,也就是三年,兔子的数量 4. int i;

5. long arr[]=new long[36]; //这个数组时用来计算每月有兔子的对数 6. arr[0]=arr[1]=1;

7. \第1个月有兔子1对\+\+\总数是\+2); 8. \第2个月有兔子1对\+\+\总数是\+2); 9. for(i=2;i<=35;i++){

10. arr[i]=arr[i-1]+arr[i-2];

11. \第\+i+\个月有兔子\+arr[i]+\对\+\+\总数是\+2*arr[i]); 12. //规律是 每个数字都是前面两个数字之和 13. } 14. } 15. }

OK,用时45分钟。

【程序2】

题目:判断101-200之间有多少个素数,并输出所有素数。

素数又叫质数,就是除了1和它本身之外,再也没有整数能被它整除的数。也就是素数只有两个因子。

[java]

1. public class Example2 {

2. public static void main(String args[]){

3. int i,j,n,m,x; //n是用来存储余数的;m是用来统计具体一个数的因子; 4. n=0;m=0;x=0; //x是用来统计101~200之前素数的个数 5. for(i=101;i<=200;i++){ //两重循环 6. for(j=1;j<=i;j++){

7. n=i%j; //去余数,如果余数为零,就是该数的因子 8. if(n==0) { m=m+1; } //统计某数有多少个因子 9. }

10. if(m==2\); x=x+1;} //如果某数的因子只有两个,那它就一定是素数,那这个数就应该输出 11. m=0; //一定要清零,不然会继续累加 12. }

13. \在101~200之間一共有素數:\+x+\個\); 14. } 15. }

我好笨啊,这题我做了两个钟头,最终还是解决了。加油

【程序3】

题目:打印出所有的\水仙花数\,所谓\水仙花数\是指一个三位数,其各位数字立方和等于该数本身。例如:

153是一个\水仙花数\,因为153=1的三次方+5的三次方+3的三次方。想当年,做这些题都是网上找答案,如今事过境迁,不会也得会。

[java]

1. public class Example3 {

2. public static void main(String args[]){ 3. int a,sum; //表示100~999 4. int i,j,k;//分别表示百位、十位、各位 5. for(a=100;a<=999;a++){ 6. i=a/100; 7. j=(a-i*100)/10;

8. k=a-i*100-j*10;

9. sum=i*i*i+j*j*j+k*k*k;

10. //java的运算符,立方要这样写,写成i^3这样,竟然运算不出来 11. //如果遇到高次的话可以使用循环算出来 12. if(sum==a) 13. } 14. }

还是有学到点东西,应该还有别的方法。那我就试试吧。

[java]

1. public class Example4 {

2. public static void main(String args[]){ 3. int sum;

4. int i,j,k;//分别表示百位、十位、各位 5. for(i=1;i<=9;i++){ 6. for(j=0;j<=9;j++){ 7. for(k=0;k<=9;k++){

8. sum=i*i*i+j*j*j+k*k*k; 9. if(i*100+j*10+k==sum){ 10. } 11. } 12. } 13. } 14. } 15. }

【程序4】

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4