【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
public class Demo01 {
public static void main(String args[]) {
int i = 0;
for (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 Demo02 {
public static void main(String args[]) {
int i = 0;
math mymath = new math();
for (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之间有多少个素数,并输出所有素数。
:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
public class Demo03 {
public static void main(String args[]) {
int i = 0;
math mymath = new math();
for (i = 2; i <= 200; i++)
if ((i) == true)
(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 % i == 0)
return false;
return true;
}
}
【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
public class Demo04 {
public static void main(String args[]) {
int i = 0;
math mymath = new math();
for (i = 100; i <= 999; i++)
if ((i) == true)
(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;
}
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】题目:将
JAVA经典算法50题 来自淘豆网m.daumloan.com转载请标明出处.