Série de Fibonacci
Publicado por Oberlan C. Romão (última atualização em 29/05/2010)
[ Hits: 6.011 ]
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; }
Dado determinados números, retorna-os em ordem crescente
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Linux Mint nao reconhece segundo monitor. (1)
Copiar uma pasta 100% fiel a original? (6)