题解 | #统计每个月兔子的总数#

统计每个月兔子的总数

http://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395

解析:
将兔子分成三类:小,中,大

所以每个月的兔子数量为

月 1 2 3 4 5 6 7 8 9 10 11 12

小 1 0 1 1 2 3 5 8 13 21 34 55

中 0 1 0 1 1 2 3 5 8 13 21 34

大 0 0 1 1 2 3 5 8 13 21 34 55

分析:每个月兔子的总数都为前两个月兔子的总和
这是斐波那契数列(兔子问题)。

方法1:python 循环数列法。

import sys
for s in sys.stdin:
    month = int(s)
    L = []
    for i in range(month):
        if i <2:
            L.append(1)
        else:
            L.append(L[i-1]+L[i-2])
    print(L[-1])

方法2:python

while True:
    try:
        n = int(input())
        a = 1
        b = 1
        for i in range(2,n):
            res = a + b 
            a = b 
            b = res
        print(res)
    except:
        break

方法3: C

#include <stdio.h>

int main()
{
    int mouth;
    while(scanf("%d",&mouth)!=EOF){
        int moutha = 1;
        int mouthb = 1;
        int sum;
        if(mouth<=2)
            printf("1");
        int i = 3;
        for(i;i<=mouth;i++){
            sum = moutha + mouthb;
            mouthb = moutha;
            moutha = sum;
        }
        printf("%d\n",sum);

    }
    return 0;
}
全部评论

相关推荐

11-24 19:04
已编辑
湖南工商大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务