23课时,迭代遇到的问题
当n>2时,显示的结果只有2,请问,问题出在哪里了,新手上路,多多指教。def Fun(n):
n1 = 1
n2 = 1
n3 = 1
if n <1:
print('输入错误')
return -1
if n == 0 or n == 1:
return 1
if n > 2:
n3 = n1 + n2
n2 = n3
n1 = n2
n -= 1
return n3
if n == 1:
return 1
else:
return 2
n = int(input('请输入一个整数:'))
result = Fun(n)
if result >= 1:
print ('有%d只兔子' %result)
没有循环只会算到2,我安装你的思路修改了。
def Fun(n):
n1 = 1
n2 = 1
if n <1:
print('输入错误')
return -1
if n == 0 or n == 1:
return 1
if n >= 2:
while n - 1:
n3 = n1 + n2
n1 = n2
n2 = n3
n -= 1
return n2
n = int(input('请输入一个整数:'))
result = Fun(n)
if result >= 1:
print ('有%d只兔子' %result) 单就这个程序,fun函数底部那一对儿if和else是一直执行的,所以return只有两种结果:当n == 1时为1;当n != 1时为2.
页:
[1]