A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© NGQ 中级黑马   /  2017-2-26 14:04  /  1307 人查看  /  3 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文

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(int x) { if(x==1 || x==2)
return 1;
else
return 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 || x==2)
return 1;
else
return 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(i)==true)
System.out.println(i); }
}
class math
{
public int f(int x) { if(x==1 || x==2)
return 1;
else
return 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】 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端

3 个回复

倒序浏览
回复 使用道具 举报
首尔街少年 发表于 2017-2-26 14:11
不会做。。。

第一题是经典的递归题,第二题就是简单的循环嵌套判断,第三题也是循环判断
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马