欢迎来到天天文库
浏览记录
ID:55550552
大小:92.00 KB
页数:43页
时间:2020-05-16
《Java经典问题算法大全.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java经典问题算法大全/*【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....*/packagecn.com.flywater.FiftyAlgorthm;publicclassFirstRabbit{publicstaticfinalintMONTH=15;publicstaticvoidmain(String[]args){
2、longf1=1L,f2=1L;longf;for(inti=3;i3、FiftyAlgorthm;publicclassSecondPrimeNumber{publicstaticintcount=0;publicstaticvoidmain(String[]args){for(inti=101;i<200;i++){booleanb=true;//默认此数就素数for(intj=2;j<=Math.sqrt(i);j++){if(i%j==0){b=false;//此数不是素数break;}}if(b){count++;System.out.print(i+"");}}S4、ystem.out.println("素数的个数:"+count);}}/*【程序3】作者若水飞天题目:打印出所有的"水仙花数(narcissusnumber)",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。*/packagecn.com.flywater.FiftyAlgorthm;publicclassThirdNarc5、issusNum{staticintb,bb,bbb;publicstaticvoidmain(String[]args){for(intnum=101;num<1000;num++){ThirdNarcissusNumtnn=newThirdNarcissusNum();tnn.f(num);}}publicvoidf(intm){bbb=m/100;bb=(m%100)/10;b=(m%100)%10;if((bbb*bbb*bbb+bb*bb*bb+b*b*b)==m){System.out.pri6、ntln(m);}}}/*【程序4】作者若水飞天题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。*/packagecn.com.flywater.FiftyAlgor7、thm;importjava.util.Scanner;publicclassFourthPrimeFactor{staticintn,k=2;publicstaticvoidmain(String[]args){Scanners=newScanner(System.in);n=s.nextInt();System.out.print(n+"=");FourthPrimeFactorfpf=newFourthPrimeFactor();fpf.f(n);}publicvoidf(intn){while(k8、<=n){if(k==n){System.out.println(n);break;}elseif(n>k&&n%k==0){System.out.print(k+"*");n=n/k;f(n);break;}elseif(n>k&&n%k!=0){k++;f(n);break;}}}}/*【程序5】作者若水飞天题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C
3、FiftyAlgorthm;publicclassSecondPrimeNumber{publicstaticintcount=0;publicstaticvoidmain(String[]args){for(inti=101;i<200;i++){booleanb=true;//默认此数就素数for(intj=2;j<=Math.sqrt(i);j++){if(i%j==0){b=false;//此数不是素数break;}}if(b){count++;System.out.print(i+"");}}S
4、ystem.out.println("素数的个数:"+count);}}/*【程序3】作者若水飞天题目:打印出所有的"水仙花数(narcissusnumber)",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。*/packagecn.com.flywater.FiftyAlgorthm;publicclassThirdNarc
5、issusNum{staticintb,bb,bbb;publicstaticvoidmain(String[]args){for(intnum=101;num<1000;num++){ThirdNarcissusNumtnn=newThirdNarcissusNum();tnn.f(num);}}publicvoidf(intm){bbb=m/100;bb=(m%100)/10;b=(m%100)%10;if((bbb*bbb*bbb+bb*bb*bb+b*b*b)==m){System.out.pri
6、ntln(m);}}}/*【程序4】作者若水飞天题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。*/packagecn.com.flywater.FiftyAlgor
7、thm;importjava.util.Scanner;publicclassFourthPrimeFactor{staticintn,k=2;publicstaticvoidmain(String[]args){Scanners=newScanner(System.in);n=s.nextInt();System.out.print(n+"=");FourthPrimeFactorfpf=newFourthPrimeFactor();fpf.f(n);}publicvoidf(intn){while(k
8、<=n){if(k==n){System.out.println(n);break;}elseif(n>k&&n%k==0){System.out.print(k+"*");n=n/k;f(n);break;}elseif(n>k&&n%k!=0){k++;f(n);break;}}}}/*【程序5】作者若水飞天题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C
此文档下载收益归作者所有