/**
* 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月
* 起每个月都生一对兔子,小兔子长到第四个月后每个月又生
* 一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
* 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21….
*/
public class Test {
public static void main(String[] args) {
System.out.println("======每个月兔子的总数======");
int i = 0;
for(i = 1; i < 10; i++){
System.out.println("第" + 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);
}
}
}
/**
* 【【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。
* 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
* 则表明此数不是素数,反之是素数。
*/
public class Test {
public static void main(String[] args) {
for(int i = 101; i < 201; i++){
System.out.println(i + " " + (isSuShu(i)?"是素数":"不是素数"));
}
}
public static boolean isSuShu(int x){
int i = 0;
for(i = 2; i < x/2; i++){
if(x%i == 0)
return false;
}
return true;
}
}
/**
* 程序3】 题目:打印出所有的 “水仙花数 “,所谓 “水仙花数 “是指一个三位数,
* 其各位数字立方和等于该数本身。
* 例如:153是一个 “水仙花数 “,因为153=1的三次方+5的三次方+3的三次方。
* 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
*/
public class Test {
public static void main(String[] args) {
for(int i = 100; i < 1000; i++){
System.out.println(i + " " + isShuiXianHua(i));
}
}
public static boolean isShuiXianHua(int x){
int b = x/100;
int s = (x-(100*b))/10;
int g = (x-100*b -s*10);
return (x == b*b*b + s*s*s + g*g*g);
}
}