欢迎来到天天文库
浏览记录
ID:59547923
大小:84.57 KB
页数:37页
时间:2020-11-10
《Java经典逻辑编程50题.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java经典逻辑编程50题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1)程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....(斐波那契数列)2)参考代码importjava.util.Scanner;publicclassRabbitNum{ publicstaticvoidmain(String[]args){ Scannerin=newScanner(System.in);
2、 System.out.println("你想知道前几个月的兔子的数量"); intmonth=in.nextInt(); int[]mon=newint[month]; if(month<3){ System.out.println("第"+month+"个月有1对兔子,共2只"); } else{ for(inti=2;i3、1; mon[i]=mon[i-1]+mon[i-2]; System.out.printf("第%d个月有%d对兔子,共%d只兔子",i+1,mon[i],2*mon[i]); } }}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。1)程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。(java.lang.Math.sqrt(doublea) 返回正确舍入的一个double4、值的正平方根)2)参考代码publicclassPrime{ publicstaticvoidmain(String[]args){ System.out.print("101--200中的素数有:"); for(inti=101;i<=200;i++){ if(isPrime(i)) System.out.print(""+i); } } //isPrime方法用来判断一个数是否是素数 privatestaticbooleani5、sPrime(inti){ for(intj=2;j<=Math.sqrt(i);j++){ if(i%j==0) returnfalse; } returntrue; }}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1)程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2)参考代码p6、ublicclassNarcissisticNum{ publicstaticvoidmain(String[]args){ System.out.print("水仙花数有:"); for(intnum=100;num<1000;num++){ if(isNarcissisticNum(num)) System.out.println(""+num); } } //一个判断正整数是否为水仙花数的方法 privatestaticbo7、oleanisNarcissisticNum(intnum){ //TODOAuto-generatedmethodstub inta=num/100; //分离出百位a intb=(num/10)%10; //分离出十位b intc=num%10; //分离出个位c intsum=a*a*a+b*b*b+c*c*c; if(sum==num) returntrue; else 8、 returnfalse; }}【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*
3、1; mon[i]=mon[i-1]+mon[i-2]; System.out.printf("第%d个月有%d对兔子,共%d只兔子",i+1,mon[i],2*mon[i]); } }}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。1)程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。(java.lang.Math.sqrt(doublea) 返回正确舍入的一个double
4、值的正平方根)2)参考代码publicclassPrime{ publicstaticvoidmain(String[]args){ System.out.print("101--200中的素数有:"); for(inti=101;i<=200;i++){ if(isPrime(i)) System.out.print(""+i); } } //isPrime方法用来判断一个数是否是素数 privatestaticbooleani
5、sPrime(inti){ for(intj=2;j<=Math.sqrt(i);j++){ if(i%j==0) returnfalse; } returntrue; }}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1)程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2)参考代码p
6、ublicclassNarcissisticNum{ publicstaticvoidmain(String[]args){ System.out.print("水仙花数有:"); for(intnum=100;num<1000;num++){ if(isNarcissisticNum(num)) System.out.println(""+num); } } //一个判断正整数是否为水仙花数的方法 privatestaticbo
7、oleanisNarcissisticNum(intnum){ //TODOAuto-generatedmethodstub inta=num/100; //分离出百位a intb=(num/10)%10; //分离出十位b intc=num%10; //分离出个位c intsum=a*a*a+b*b*b+c*c*c; if(sum==num) returntrue; else
8、 returnfalse; }}【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*
此文档下载收益归作者所有