Série de Fibonacci
Publicado por Oberlan C. Romão (última atualização em 29/05/2010)
[ Hits: 5.984 ]
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; }
Número par ou ímpar (com operado bit a bit)
ponteirostrab.c - Trabalhando com ponteiros
Nenhum comentário foi encontrado.
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
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta