欢迎来到天天文库
浏览记录
ID:33585457
大小:821.52 KB
页数:35页
时间:2019-02-27
《50道java基础编程练习题全面解答》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、50道JAVA基础编程练习题解答【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....解答:(方法一)利用数学分析可得知:这个月的兔子数量为前两个月的兔子数量之和,推导过程如下:X1,X2,X3Y1,Y2,Y3Z1,Z2,Z3X1:表示一个月大的兔子;X2表示两个月大的兔子;X3表示三个月及三月以上的兔子。有以下数学表达式:Y1=X2+X3,Y2=
2、X1,Y3=X2+X3Z1=Y2+Y3,Z2=Y1,Z3=Y2+Y3Z1+Z2+Z3=Y2+Y3+Y1+(Y2+Y3)=(Y2+Y3+Y1)+(X2+X3+X1)因此上面每个月的兔子的数量满足斐波那契数列。编程实现较为简单,此处省略。(方法二)方法二利用编程实现,具有一般性(开始兔子个数和产仔周期可自行输入),程序设计如下:importjava.util.*;importjava.io.*;classTuZi{intnianling=1;}publicclassText1{publicstaticvoidmain(St
3、ring[]args)throwsIOException{//TODOAuto-generatedmethodstubintshuliang=1;intzhouqi=4;intyuefen=0;Vectorrongqi=newVector();System.out.print("输入兔子开始数量:");BufferedReaderstdin=newBufferedReader(newInputStreamReader(System.in));shuliang=(newInteger(stdin.
4、readLine()));System.out.print("输入兔子生产周期:");zhouqi=(newInteger(stdin.readLine()));System.out.print("输入查询月份:");yuefen=(newInteger(stdin.readLine()));for(inti=1;i<=shuliang;i++){rongqi.addElement(newTuZi());}for(inti=2;i<=yuefen;i++){for(intj=0;j5、{TuZia=(TuZi)rongqi.elementAt(j);a.nianling++;}for(intj=0;j=zhouqi){rongqi.addElement(newTuZi());}}}System.out.print("兔子数量为:"+rongqi.size());}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数6、),如果能被整除,则表明此数不是素数,反之是素数。解答:程序如下:publicclassText2{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintsum=0;System.out.print("101到200的素数是:");for(inti=101;i<=200;i++){intflag=0;for(intj=2;j<=Math.sqrt(i);j++){floatk=(float)i;if(k%j==0){flag=1;brea7、k;}}if(flag==0){System.out.print(i+"");sum++;}}System.out.println("");System.out.print("素数个数为:");System.out.print(sum);}}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。解答:程序如下:8、publicclassText3{publicstaticvoidmain(String[]args){inta=0;intb=0;intc=0;System.out.println("100到999的水仙花数为:");for(inti=100;i<=999;i++){a=i/100;b=i/10-a*10;c=i-b*10-a*
5、{TuZia=(TuZi)rongqi.elementAt(j);a.nianling++;}for(intj=0;j=zhouqi){rongqi.addElement(newTuZi());}}}System.out.print("兔子数量为:"+rongqi.size());}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数
6、),如果能被整除,则表明此数不是素数,反之是素数。解答:程序如下:publicclassText2{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintsum=0;System.out.print("101到200的素数是:");for(inti=101;i<=200;i++){intflag=0;for(intj=2;j<=Math.sqrt(i);j++){floatk=(float)i;if(k%j==0){flag=1;brea
7、k;}}if(flag==0){System.out.print(i+"");sum++;}}System.out.println("");System.out.print("素数个数为:");System.out.print(sum);}}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。解答:程序如下:
8、publicclassText3{publicstaticvoidmain(String[]args){inta=0;intb=0;intc=0;System.out.println("100到999的水仙花数为:");for(inti=100;i<=999;i++){a=i/100;b=i/10-a*10;c=i-b*10-a*
此文档下载收益归作者所有