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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡成成 中级黑马   /  2016-3-10 13:21  /  1538 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
public class Prog1{
        public static void main(String[] args){
                int n = 10;
[size=10.5000pt]        [size=10.5000pt]        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);
        }
}

9 个回复

倒序浏览
回复 使用道具 举报

{:3_46:}{:3_46:}{:3_54:}
回复 使用道具 举报
回复 使用道具 举报
就是我 来自手机 中级黑马 2016-3-12 08:50:55
报纸
递归算,不错
当年(第n年)的兔子数量f(n),等于前一年的兔子量(fun(n-1))再加上两年前出生的兔子数量(两年前的兔子算到今年已出生3年,所以要生相同与自身对数的兔子)f(n-2)。除去第一年和第二年,没兔子出生,其余的fun(n)=f(n-1)+f(n-2)
回复 使用道具 举报
斐波那契数列的,用递归,用非递归都可以求。
回复 使用道具 举报
回复 使用道具 举报
就是我 发表于 2016-3-12 08:50
递归算,不错
当年(第n年)的兔子数量f(n),等于前一年的兔子量(fun(n-1))再加上两年前出生的兔子数 ...

恩恩,就是
回复 使用道具 举报
yunfeng482 发表于 2016-3-12 12:30
斐波那契数列的,用递归,用非递归都可以求。

正在学习中
回复 使用道具 举报
看后5小时
嗷.............
还是不懂没看到这一块
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马