Python Fibonacci中N个数的和
我试图实现斐波那契中N个整数的总和Python Fibonacci中N个数的和,python,python-3.x,jupyter-notebook,fibonacci,Python,Python 3.x,Jupyter Notebook,Fibonacci,我试图实现斐波那契中N个整数的总和 def fibo(n): if n<2: return 1 else: res = fibo(n-1) + fibo(n-2) sum = sum + res return res, sum n=7 sum = 0 for i in range(1, n): print(fibo(i)) print("Suma", sum) #example: if n=7 t
def fibo(n):
if n<2:
return 1
else:
res = fibo(n-1) + fibo(n-2)
sum = sum + res
return res, sum
n=7
sum = 0
for i in range(1, n):
print(fibo(i))
print("Suma", sum)
#example: if n=7 then print : 1,1,2,3,5,8,13 and sum is 32
def fibo(n):
如果n对代码进行了一些修改:
def fibo(n):
print(1)
counter = 1
old_num = 0
new_num = 1
sum_fib = 1
while counter < n:
fib = old_num + new_num
print(fib)
if counter < n:
old_num = new_num
new_num = fib
sum_fib = sum_fib + fib
counter = counter + 1
print('sum:' + str(sum_fib))
#fibo(5)
def fibo(n):
印刷品(1)
计数器=1
old_num=0
新数量=1
sum_fib=1
当计数器
首先,行sum=sum+res
没有意义,因为您从未定义过sum
因此,您的函数应该如下所示
def fibo(n):
if n<2:
return 1
else:
return fibo(n-1) + fibo(n-2)
或许
sum_ = sum(fibo(i) for i in range(0, n))
请注意,只有在未重写名为sum
的内置函数的情况下,后者才会起作用。您只需要在for循环中计算sum,而不是在fibo(n)中。
请看:
def fibo(n):
if n<2:
return 1
else:
res = fibo(n-1) + fibo(n-2)
return res
n=7
sum = 0
for i in range(0, n):
r = fibo(i)
sum += r
print(r)
print("Suma", sum)
def fibo(n):
如果n您指的是赋值前的变量和
您可能希望在for循环中使用变量sum,并将fibo分配给它
def fibo(n):
if n<2:
return 1
else:
return fibo(n-1) + fibo(n-2)
n=7
sum = 0
for i in range(1, n):
sum += fibo(i)
print(fibo(i))
print("suma", sum)
def fibo(n):
如果n让我首先指出,斐波那契序列的第一个7项之和不是32。这个总数是33。现在来谈谈问题。下面是我将如何解决这个问题。我首先定义计算斐波那契序列第n项的函数,如下所示:
def fibo(n):
if n in [1,2]:
return 1
else:
res = fibo(n-1) + fibo(n-2)
return res
然后我将定义一个函数来计算Fibonacci序列的第一个n项的和,如下所示
def sum_fibo(n):
res = [fibo(i) for i in range(1, n+1)]
print(res)
return sum(res)
所以如果我这样做了
[In] sum_fibo(7)
我明白了
[1, 1, 2, 3, 5, 8, 13]
out >>> 33
注意:在定义上述功能时,我假设函数的输入总是一个正整数,尽管Fibonacci可以扩展到所有实数和复数,如图所示。实际上我不认为这需要那么复杂Fibonacci序列在很多方面都很有趣,例如,如果你想把第七个斐波那契数加起来,那么请检查第九个斐波那契数-1是什么?现在我们如何找到第n个斐波那契数
p = (1+5**.5)/2
q = (1-5**.5)/2
def fibo(n):
return 1/5**.5*(p**n-q**n)
现在我们可以在一次计算中找到任何数字的总和!例如7
fibo(9)- 1
输出
33
实际的答案是什么
1+1+2+3+5+8+13=33
summa summarum:序列下两位的fibonachi数减去1是fibonachi数到数字的总和def sumofFibonaccinumbers(n):
结果=非随机数的总和(10)
打印(结果)…那么。。。。?它看起来很管用。你有什么问题?只需在每次迭代中将fibo(i)
添加到suma
。。。还有什么?你忘了提问最重要的部分,那就是提问。Sry,我现在编辑…不要命名变量sum
如何实现总和@RafaelCAny为什么从递归函数变为循环?不完全是。没有说它必须是递归的。请对你的代码进行解释,以便OP能更好地理解它。另外,请用正确的格式编辑你的答案
1+1+2+3+5+8+13=33
# Write your code here
i = 1
sum = 2
fib_list = [0, 1, 1]
if n == 1:
return 0
if n == 2:
return 1
if n == 3:
return 2
for x in range(1,n-2):
m = fib_list[-1] + fib_list[-2]
fib_list.append(m)
sum = sum + m
return sum