Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Como implementar um programa para calcular a soma de todos os termos da sequência de Fibonacci que são pares?

0 votos
408 visitas

1 Resposta

0 votos
respondida Mar 19, 2016 por danielcajueiro (5,661 pontos)  

Uma implementação simples em Python é

def fibonacci(n):
    if(n==1):
        return 0
    elif (n==2):
        return 1
    else:
       fib2=0
       fib1=1
       for i in range(3,n+1):
           fib=fib2+fib1
           fib2=fib1
           fib1=fib
       return fib    

if __name__ == '__main__':
    theSum=0
    count=1
    fib=fibonacci(count)        
    while(fib<4000000):
        if(fib%2==0):
            theSum=theSum+fib
        count=count+1    
        fib=fibonacci(count)            

    print theSum        

Se você olhar atentamente, você perceberá que você não precisa calcular todos os números e testa-los. Você pode ir diretamente nos termos da Fibonacci que são pares (pois eles são periódicos):

theSum=0
count=1
fib=fibonacci(count)        
while(fib<4000000):
    theSum=theSum+fib
    count=count+3    
    fib=fibonacci(count)            

print theSum        
...