1 / 19
文档名称:

java经典算法50题.doc

格式:doc   页数:19
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java经典算法50题.doc

上传人:xxj16588 2016/5/14 文件大小:0 KB

下载得到文件列表

java经典算法50题.doc

相关文档

文档介绍

文档介绍:JAVA 经典算法 50题/********************************************************** ********************* * ***@author DarkSee <gxlizq@> *********************************************************** ********************/ JAVA 经典算法 50题【程序 1】题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子, 假如兔子都不死,问每个月的兔子总数为多少? 1. 程序分析:兔子的规律为数列 1,1,2,3,5,8,13,21.... public class Demo01 { public static void main(String args[]) { for (int i= 1;i <= 20; i++) (f(i)); } public static int f(int x){ if (x == 1||x == 2) return 1; else return f(x - 1)+ f(x - 2); }}或 public class Demo01 { public static void main(String args[]) { math mymath = new math(); for (int i= 1;i <= 20; i++) ((i)); }} class math { public int f(int x){ if (x == 1||x == 2) return 1; else return f(x - 1)+ f(x - 2); }} 【程序 2】题目:判断 101-200 之间有多少个素数,并输出所有素数。 1. 程序分析: 判断素数的方法: 用一个数分别去除2到 sqrt( 这个数), 如果能被整除,则表明此数不是素数,反之是素数。 public class Demo02{ public static void main(String[] args){ for(int i=2;i<=200;i++){ boolean flag=true; for(int j=2;j<i;j++){ if(i%j==0){ flag=false; break; }} if(flag==true){ (" "+i); }}}} 【程序 3】题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数, 其各位数字立方和等于该数本身。例如: 153 是一个水仙花数,因为 153=1 的三次方+ 5 的三次方+ 3 的三次方。 1. 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位, 十位,百位。 public class Demo03 { public static void main(String args[]) { math mymath = new math(); for (int i= 100; i <= 999; i++) if ((i) == true) (i); }} class math { public boolean shuixianhua(int x){ int i= 0,j= 0,k= 0; i= x/100; j= (x%100)/10; k= x%10; if (x == i*i*i + j*j*j + k*k*k) return true; else return false; }} 【程序 4】题目: 将一个正整数分解质因数。例如: 输入 90, 打印出 90=2*3*3*5 。 1. 程序分析:对 n 进行分解质因数,应先找到一个最小的质数 i,然后按下述步骤完成: (1) 如果这个质数恰等于 n ,则说明分解质因数的过程已经结束,打印出即可。(2) 如果 n>i ,但 n 能被 i 整除,则应打印出 i 的值,并用 n 除以 i 的商, 作为新的正整数你, 重复执行第一步。(3) 如果 n 不能被 i 整除,则用 i+1 作为 i 的值, 重复执行第一步。 import ; public class Demo04 { public Demo04() { super(); } public void fenjie(int n){ for (int i= 2;i <= n; i++) { if (n%i ==