斐波拉契数列,有人买了一对小兔子,已知小兔子一个月后长成大兔子,大兔子每个月生一对小兔子,问:两年(24个月)之后,他一共有几对兔子。

[01]斐波拉契数列,有人买了一对小兔子,已知小兔子一个月后长成大兔子,大兔子每个月生一对小兔子,问:两年(24个月)之后,他一共有几对兔子。

第i月份 大兔子 小兔子 总兔子
1 0 1 1
2 1 0 1
3 1 1 2
4 2 1 3
5 3 2 5
6 5 3 8
7 8 5 13
8 13 8 21
9 21 13 34
10 34 21 55
11 55 34 89
12 89 55 144

数列问题的递推解法

  int[] num=new int[24];//24个月
            num[0] = 1;//第一个月总共1只 大兔子0	小兔子1	总兔子1
            num[1] = 1;//第二个月总共1只 大兔子1	小兔子0	总兔子1
            for (int i = 2; i < 24; i++)//num[2]即第三个月
            { 
                num[i] = num[i - 1] + num[i - 2]; 
                Console.WriteLine("第"+(i+1)+"个月有"+num[i]+"只兔兔"); 
            }; 

 

第i个月总数 是前两个月之和

流程图

2

同理替换

             int first = 0;
            int second = 1;
            //记录每一次的结果  
            int result = 0;
            for (int i = 2; i < n + 1; i++)
            {
                result = first + second;
                first = second;
                second = result;
            }

猜你喜欢

转载自blog.csdn.net/qq_28821897/article/details/129869657