Python 3.x 求小于n的斐波那契数之和

Python 3.x 求小于n的斐波那契数之和,python-3.x,fibonacci,Python 3.x,Fibonacci,我必须找到一个值n之前所有斐波那契数的和。所以我得到的最后一个斐波那契值小于或等于n。例如,fibonacci(10)的和是0+1+1+2+3+5+8,因为8可以通过将所有小于n的fibonacci数存储在列表中,然后返回其和来实现 def sum_of_fibonacci(n): if n == 0 : return 0 fib = [0, 1] #initializing the list of Fibonacci numbers i = 2 #positio

我必须找到一个值n之前所有斐波那契数的和。所以我得到的最后一个斐波那契值小于或等于n。例如,fibonacci(10)的和是0+1+1+2+3+5+8,因为8可以通过将所有小于n的fibonacci数存储在列表中,然后返回其和来实现

def sum_of_fibonacci(n):
    if n == 0 : return 0
    fib = [0, 1]   #initializing the list of Fibonacci numbers
    i = 2   #position of next_fib
    next_fib = 1
    while next_fib <n :
        fib.append(next_fib)
        i += 1
        next_fib = fib[i-1] + fib[i-2]
    return sum(fib)
print(sum_of_fibonacci(10))
# 20
fibonacci(n)的定义和:
如果n==0:返回0
fib=[0,1]#初始化斐波那契数列表
i=2#下一个fib的位置
next_fib=1

而NEXTYFIB

基于此用例更新了我的响应:<代码>例如,FiBoNasi(10)的SUMIX将是0 + 1 + 1 + 2 + 3 + 5 + 8,因为您考虑过“代码>范围(n)< /代码>和<代码>和>代码>从您的代码> FIB < /代码>函数中返回的值吗?对于FIB(4),要停止在<代码> 0 + 1 + 1 + SUV++ <代码>和FIB(i)你想停在

0+1+1+2+3+5
?这是你的问题吗?在第一种情况下,
3<4<5
您希望在
3
处停止,而在第二种情况下,
5<7<8
您希望它在
5
处停止?
def sum_of_fibonacci(n):
    if n == 0 : return 0
    fib = [0, 1]   #initializing the list of Fibonacci numbers
    i = 2   #position of next_fib
    next_fib = 1
    while next_fib <n :
        fib.append(next_fib)
        i += 1
        next_fib = fib[i-1] + fib[i-2]
    return sum(fib)
print(sum_of_fibonacci(10))
# 20
MAX_RANGE = 10000   #we'll consider the first 10000 Fibonacci numbers
fib = [0, 1]
for i in range(2, MAX_RANGE):
    fib.append((fib[i-1] + fib[i-2]))
def sum_of_fibonacci(n):
    if n == 0 : return 0
    return sum([f for f in fib if f<n])
Q = int(input())   #input the number of test cases
for i in range(Q):
    to = int(input())   #input each test case
    print(sum_of_fibonacci(to))
# input : 2
# input : 10
# output : 20
# input : 100
# output : 232
def sum_of_fib(n):
    a = 0
    b = 1
    if n < 0:
        print ('Incorrect input')
    elif n in (0,1): return n
    else:
        s = 0
        while b <= n:
            s += b
            a,b = b,a+b
        return s

print ('sum of fib till 0:',sum_of_fib(0))
print ('sum of fib till 1:',sum_of_fib(1))
print ('sum of fib till 2:',sum_of_fib(2))
print ('sum of fib till 3:',sum_of_fib(3))
print ('sum of fib till 4:',sum_of_fib(4))
print ('sum of fib till 5:',sum_of_fib(5))
print ('sum of fib till 6:',sum_of_fib(6))
print ('sum of fib till 7:',sum_of_fib(7))
print ('sum of fib till 8:',sum_of_fib(8))
print ('sum of fib till 9:',sum_of_fib(9))
print ('sum of fib till 10:',sum_of_fib(10))
sum of fib till 0: 0
sum of fib till 1: 1
sum of fib till 2: 4
sum of fib till 3: 7
sum of fib till 4: 7
sum of fib till 5: 12
sum of fib till 6: 12
sum of fib till 7: 12
sum of fib till 8: 20
sum of fib till 9: 20
sum of fib till 10: 20