</pre><pre name="code" class="java">/*
【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
*/
class Yue
{
private int yue;
Yue(int yue)
{
this.yue = yue;
}
public int getYue()
{
return yue;
}
}
class RabbitNumber
{
public static int getNumber(int yue)
{
if (yue==1 || yue==2)
{
return 1;
}
else if (yue<1)
{
throw new FuShuException("没有这个月份");
}
else
{
return getNumber(yue-1)+getNumber(yue-2);
}
}
}
class FuShuException extends RuntimeException
{
FuShuException(String msg)
{
super(msg);
}
}
class Rabbit
{
public static void main(String[] args)
{
System.out.println(RabbitNumber.getNumber(new Yue(6).getYue()));
}
}
<pre name="code" class="java">/*
【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
*/
class SuShuCheck
{
public void getSuShu(int sqrt)
{
boolean flag = true;
for (int num=2; num<sqrt; num++)
{
if (sqrt%num==0)
{
flag = false;
break;
}
}
if (flag == true)
{
System.out.print(sqrt+"\t");
}
}
}
class AllNumber
{
private int start;
private int end;
AllNumber(int a,int b)
{
start = a;
end = b;
}
public void method()
{
for (int sqrt=start; sqrt<=end; sqrt++)
{
new SuShuCheck().getSuShu(sqrt);
}
}
}
class SuShu
{
public static void main(String[] args)
{
AllNumber n = new AllNumber(101,200);
System.out.println("在101到200之间的素数有:");
n.method();
}
}
/*
【程序3】
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
*/
class EachNumber
{
private int bai=0;
private int shi=0;
private int ge=0;
public void getEachNumber()
{
for (int num=100; num<1000; num++)
{
bai = num/100;
shi = (num-(bai*100))/10;
ge = num-(bai*100)-(shi*10);
new FlowerNumberCheck().check(num,bai,shi,ge);
}
}
}
class FlowerNumberCheck
{
public void check(int num,int a,int b,int c)
{
if (num == a*a*a+b*b*b+c*c*c)
System.out.print(num+"\t");
}
}
class FlowerNumber
{
public static void main(String[] args)
{
new EachNumber().getEachNumber();
}
}