Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Fibonacci中N个数的和_Python_Python 3.x_Jupyter Notebook_Fibonacci - Fatal编程技术网

Python Fibonacci中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

我试图实现斐波那契中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 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