派森 #P119. 兔子问题

描述

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,且以“对”为计量单位。输入月份n,问第n个月的兔子总数是多少对?(提示:列举兔子产生的“对”数量,分析这些数量的规律然后构造表达式)。

样例

输入

10

输出

55

代码:

def fun(n):
    if n <= 0:
        return
    if n == 1 or n == 2:
        return 1
    else:
        return fun(n-1) + fun(n-2)
n = int(input())
print(fun(n))

代码解析:

def fun(n):
    if n <= 0:
        return
    if n == 1 or n == 2:
        return 1
    else:
        return fun(n-1) + fun(n-2)
  • 这段代码定义了一个递归函数fun,该函数接受一个整数参数n
  • 第一个条件判断if n <= 0,如果n小于等于0,直接返回。这是递归的结束条件之一,用于处理无效输入。
  • 第二个条件判断if n == 1 or n == 2,如果n等于1或2,返回结果1。这也是递归的结束条件之一,用于处理基本情况。
  • 如果以上两个条件都不满足,则执行else块中的代码。
  • return fun(n-1) + fun(n-2)表示递归调用fun函数,传入n-1n-2作为参数,并将两次递归调用的返回结果相加。
n = int(input())
print(fun(n))
  • 这部分代码获取用户输入的整数,并将其转换为整型数据,存储在变量n中。
  • 然后调用函数fun(n),并将返回的结果打印输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值