Série de Fibonacci
Publicado por Oberlan C. Romão (última atualização em 29/05/2010)
[ Hits: 5.912 ]
Homepage: http://twitter.com/oberlan
Um dos grandes problemas de quem participa de algum campeonato de programação e tem que fazer o programa gerar respostas rápidas é fazer a série de Fibonacci de forma eficiente. Pensando nisso resolvi apresentar uma solução.
O programa usa programação dinâmica, ou seja, ele vai armazenado as soluções que são encontradas, o que acelera o calculo da série.
#include <iostream> #define ll long long #define MAX 200 using namespace std; ll tab[MAX]; void ini_fibo(){ for(int i=0; i<MAX; ++i) tab[i] = -1; tab[0] = 0; tab[1] = 1; } ll fibo(ll n){ if(tab[n] != -1) return tab[n]; ll i = 2; for(; i<=n; ++i) if(tab[i] == -1) break; for(; i<=n; ++i) tab[i] = tab[i-1] + tab[i-2]; return tab[n]; } int main(){ ll n; cin >> n; ini_fibo(); while (n){ cout << "Fibonacci(" << n << ") = " << fibo(n) << endl; cin >> n; } return 0; }
Função simples sendo chamada dentro da main
Nenhum comentário foi encontrado.
DOOM clássico (quase) vanilla e um pouco melhorado
Mamãe, quero descompactar e também compactar arquivos no terminal!
Conheça a extensão Just Perfection para mudar várias opções do Gnome
Desligando ou reiniciando o Gnome rapidinho
Desligando ou reiniciando o KDE rapidinho
VPN passthrough dentro da qemu/KVM (0)
Impedir que seja trocado o nome da conta pelo usuário no "Configu... (15)
Tenho um servidor próprio e gostaria de hospedar um site nele. (9)