黑马程序员技术交流社区

标题: 兔子问题 [打印本页]

作者: 374856298    时间: 2015-4-28 21:57
标题: 兔子问题
JAVA经典算法40例
【程序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);
        }
}
作者: 神话归来99    时间: 2015-4-28 22:02
本题考察了裴波纳契数数列,主要利用递归思想来解决问题,递归就是自己调用自己,通过设定一个结束条件,然后再从结束调节往前推导,在本题中,结束条件为x==1 || x==2,满足条件则返回1,否则返回F(x-1)+f(x-2)。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2