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

© 柳超 中级黑马   /  2014-8-7 21:07  /  2429 人查看  /  18 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
  1. public class Prog1{
  2.         public static void main(String[] args){
  3.                 int n = 10;
  4.                 System.out.println("第"+n+"个月兔子总数为"+fun(n));
  5.         }
  6.         private static int fun(int n){
  7.                 if(n==1 || n==2)
  8.                    return 1;
  9.                 else
  10.                    return fun(n-1)+fun(n-2);
  11.         }
  12. }
复制代码

18 个回复

倒序浏览
题目:判断101-200之间有多少个素数,并输出所有素数。



程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则
表明此数不是素数,反之是素数。



public class Prog2{

    public static void main(String[] args){

        int m = 1;

        int n = 1000;

        int count = 0;

        //统计素数个数

        for(int i=m;i<n;i++){

            if(isPrime(i)){

                count++;

                System.out.print(i+" ");

                if(count%10==0){

                    System.out.println();

                }

            }

        }

        System.out.println();

        System.out.println("在"+m+"和"+n+"之间共有"+count+"个素数");

    }

    //判断素数

    private static boolean isPrime(int n){

        boolean flag = true;

        if(n==1)

          flag = false;

        else{

            for(int i=2;i<=Math.sqrt(n);i++){

            if((n%i)==0 || n==1){

                flag = false;

                break;

            }

             else

               flag = true;

          }

        }

        return flag;

    }
}
回复 使用道具 举报
来踩个沙发,谢谢分享!!!
回复 使用道具 举报
兔子这个是fibonacci数列啊
回复 使用道具 举报
哈哈,,,菲波拉契数
回复 使用道具 举报
来看一下
回复 使用道具 举报
加油哈 ,,
回复 使用道具 举报
看懂代码。 不太会i写咋办
回复 使用道具 举报
不错!!
回复 使用道具 举报
代码看懂了,我把代码复制自己试试吧。
回复 使用道具 举报
到处玩的 来自手机 中级黑马 2014-8-9 09:19:34
11#
这是属于算法题,不错不错
回复 使用道具 举报
谢谢分享~!
回复 使用道具 举报
感谢分享!
回复 使用道具 举报
个人觉得第一题这样写更好:
package test;

public class DieDaiTest{
    public static void main(String[] args){
            for(int n=1;n<=10;n++)
            {
            System.out.println("第"+n+"个月兔子总数为"+fun(n));
            }
    }
    private static int fun(int n){
            if(n==1 || n==2)
               return 1;
            else
               return fun(n-1)+fun(n-2);
    }
}
回复 使用道具 举报
一顿一只牛 发表于 2014-8-8 21:30
看懂代码。 不太会i写咋办

反复自己写,多写就会了
回复 使用道具 举报
谢谢大家,觉得可以的给评个分吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马