Série de Fibonacci
Publicado por Oberlan C. Romão (última atualização em 29/05/2010)
[ Hits: 5.878 ]
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; }
Operações com vetor (soma, subtração e multiplicação) em C
Nenhum comentário foi encontrado.
Agora temos uma assistente virtual no fórum!!! (247)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Impressora Canon Ip 1800 (Drivers) 64 bit (3)
iso de sistema 32 bit em atividade (15)
Como transfiro os pokemons do fire red para o emulador mupen64? (1)