代码部分可以利用“<>”上传代码,像这样:def fab(n):
n1 = 1 # 第1个月总对数为1
n2 = 1 # 第2个月总对数为1
n3 = 1 # 第3个月总对数默认初始值先为1,若无此行代码当fab(1)或fab(2)时会报错!
# 上面三行代码也可简写成n1 = n2 = n3 = 1
if n < 1: # 若输入的数值小于1(比如输入0毫无意义)
print('输入有误!') # 则报错,输出错误提示
return -1 # 注意此行缩进在if语句内!报错就返回-1(正常情况下是返回结果),可返回其他数值,但必须与倒数第5行if result == -1:的值对应?
while n >= 3: # 前两项已知,求第3项,所以数列至少有3项,也就是n >= 3,感觉这样写比教材上的(n - 2) > 0要好理解些 --- 请大神指教!
n3 = n1 + n2 # 等于左边两个月总对数的和---从头开始计算,依次递进!
n1 = n2 # ……?---(n - 2)从左往右递进!
n2 = n3 # ……?---(n - 1)从左往右递进!
n -= 1 # 循环次数减1---循环次数从多到少!
return n3 # 注意此行缩进在while循环体外!退出循环返回结果即最后一轮循环时n3的值
number = int(input('请输入月数:'))
result = fab(number) # result = -1 或 result = a3,取决于输入月数的值!
if result == -1:
print('输入有误!') # 则报错,输出错误提示
else:
#print('%d个月总共有%d对小兔子!' % (number, result))
print(f'{number}个月总共有{result}对小兔子!' )
|