题解 | #统计每个月兔子的总数# (递归)

统计每个月兔子的总数

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

#兔子的月数是n
#当n>2时,每个月生一个小兔子
#一月的时候只有一只兔子
#问第n月的时候有几只兔子

#思考:
#想知道第n月的时候有几只兔子,只需要知道第n-1月时有几只年龄在2月以上的兔子
#也就是只需要知道n-2月时有几只兔子,n-2月的兔子就是n月时新出生的兔子
#所以第n月的兔子 = n-1 月的兔子数量 加上 n-2月的兔子数量

def rabit(n): #这里是边思考边写的,可以进一步简化为n==1/n==2/n>=3三种情况
    if n == 1:
        return 1
    if n == 2:
        return 1
    if n == 3:
        return rabit(n-2) + 1
    if n == 4:
        return rabit(n-2) + rabit(n-1)
    if n >=5 :
        return rabit(n-2) + rabit(n-1)

inputnum = int(input())
print(rabit(inputnum))

全部评论

相关推荐

09-29 00:03
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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