定义斐波那契数列函数时,关于符号细微调动差别的理解

def fi(n):
if n <= 1 :
return n
else :
return fi(n-1) + fi(n - 2)
print(fi(10))
print(fi(23))

以上定义的n<=1,输出结果是正数,如将其变为n<1,结果输出变为负数,有点不能理解.以上公式参考斐波那契数列.正好碰到初步学习的进阶题目.

Jason990420
最佳答案

fi(n-1) + fi(n - 2)

必须指定最小两个临界的值

if n < 1

代表最小两个值是 -1 和 0, 其他数的结果都是由这两个数累加而来, 所以肯定是负数.

如果没错, 最小两个值应该是 0 和 1, 所以应该要定义为

if n <= 1

2周前 评论
讨论数量: 1
Jason990420

fi(n-1) + fi(n - 2)

必须指定最小两个临界的值

if n < 1

代表最小两个值是 -1 和 0, 其他数的结果都是由这两个数累加而来, 所以肯定是负数.

如果没错, 最小两个值应该是 0 和 1, 所以应该要定义为

if n <= 1

2周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!