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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 柳超 中级黑马   /  2014-8-7 21:07  /  1919 人查看  /  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. }
复制代码

点评

重复的怎么给你加分。。。  发表于 2014-8-10 08:23

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数列啊
回复 使用道具 举报
哈哈,,,菲波拉契数
回复 使用道具 举报
来看一下

点评

看一下  发表于 2014-8-9 00:12
回复 使用道具 举报
加油哈 ,,
回复 使用道具 举报
看懂代码。 不太会i写咋办
回复 使用道具 举报
不错!!
回复 使用道具 举报
代码看懂了,我把代码复制自己试试吧。

点评

试试吧  发表于 2014-8-9 00:13
回复 使用道具 举报
到处玩的 来自手机 中级黑马 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写咋办

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