描述
有一对兔子,从出生后第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-1
和n-2
作为参数,并将两次递归调用的返回结果相加。n = int(input()) print(fun(n))
- 这部分代码获取用户输入的整数,并将其转换为整型数据,存储在变量
n
中。- 然后调用函数
fun(n)
,并将返回的结果打印输出。