为什么你每次循环要加两项呢。若是你想的是每次加的都是前两项的和,那样你就漏掉了第一项。
你看一下你的程序,sum每次加的内容是什么sum = 0
n = 0
def fib_loop(n):
a,b = 0,1
for i in range(n):
a,b = b,a+b
return a
for i in range(15):
a=fib_loop(n-1);b=fib_loop(n-2)
print('%4d%4d%4d\t'%(a,b,a+b))
sum = sum + fib_loop(n-1) + fib_loop(n-2)
n += 1
print(sum)
第三列是你想sum上加的内容 0 0 0
0 0 0
1 0 1
1 1 2
2 1 3
3 2 5
5 3 8
8 5 13
13 8 21
21 13 34
34 21 55
55 34 89
89 55 144
144 89 233
233 144 377
985
正确的程序应该是下面这样:sum = 0
def fib_loop(n):
a,b = 0,1
for i in range(n):
a,b = b,a+b
return a
for i in range(15):
sum = sum + fib_loop(i)
print(sum)
|