java经典例题

java经典例题

ID:37845809

大小:264.50 KB

页数:37页

时间:2019-06-01

java经典例题_第1页
java经典例题_第2页
java经典例题_第3页
java经典例题_第4页
java经典例题_第5页
资源描述:

《java经典例题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、JAVA经典算法40题1 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....   public class exp2{public static void main(String args[]){int i=0;for(i=1;i<=20;i++)System.out.println(f(i));}public static int f

2、(int x){if(x==1 

3、

4、 x==2)return 1;elsereturn f(x-1)+f(x-2);}}或public class exp2{public static void main(String args[]){int i=0;math mymath = new math();for(i=1;i<=20;i++)System.out.println(mymath.f(i));}}class math{public int f(int x){if(x==1 

5、

6、 x==2)retu

7、rn 1;elsereturn f(x-1)+f(x-2);}}2判断101-200之间有多少个素数,并输出所有素数。   1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,   则表明此数不是素数,反之是素数。   public class exp2{public static void main(String args[]){int i=0;math mymath = new math();for(i=2;i<=200;i++)if(mymath.iszhishu(

8、i)==true)System.out.println(i);}}class math{public int f(int x){if(x==1 

9、

10、 x==2)return 1;elsereturn f(x-1)+f(x-2);}public boolean iszhishu(int x){for(int i=2;i<=x/2;i++)if (x % 2==0 )return false;return true;}}3打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于

11、该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。   1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。   public class exp2{public static void main(String args[]){int i=0;math mymath = new math();for(i=100;i<=999;i++)if(mymath.shuixianhua(i)==true)System.out.println

12、(i);}}class math{public int f(int x){if(x==1 

13、

14、 x==2)return 1;elsereturn f(x-1)+f(x-2);}public boolean iszhishu(int x){for(int i=2;i<=x/2;i++)if (x % 2==0 )return false;return true;}public boolean shuixianhua(int x){   int i=0,j=0,k=0;   i=x / 100;   j=(

15、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。   程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:   (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。   (2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新

16、的正整数你,重复执行第一步。   (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。   public class exp2{public exp2(){}    public void fengjie(int n){        for(int i=2;i<=n/2;i++){            if(n%i==0){                System.out.print(i+"*");           

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。