`
方XiRui
  • 浏览: 18827 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JAVA经典算法40题(1)

阅读更多

【程序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;
    }
}

 

 

 

分享到:
评论
1 楼 西铁城 2013-02-20  
第二个程序写的实在不敢恭维。

相关推荐

Global site tag (gtag.js) - Google Analytics