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

统计每个月兔子的总数

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;
}
全部评论

相关推荐

但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务