Série de Fibonacci
Publicado por Oberlan C. Romão (última atualização em 29/05/2010)
[ Hits: 6.320 ]
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;
}
Converter um vetor em uma matriz multidimensional
EXEMPLO DA ULTILIZAÇÃO DE PONTEIROS
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Consertando o áudio com som ruim no Pipewire
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Como programar um sistema de controle para distribuições linux em c? (5)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... (2)









