Sequência de Fibonacci
Existem muitos problemas baseados na
sequência de Fibonacci , por exemplo: as escadas têm n etapas, e você pode subir uma ou duas etapas. Quantas maneiras de subir as escadas?
Apesar da adição da renderização ambiental, a essência do assunto ainda é a sequência de Fibonacci, basta descobrir as regras.
A resolução da sequência de Fibonacci pode usar técnicas de recursão ou recursão:
1. Recursão de
recursão é calcular cada item na sequência de acordo com uma determinada regra , geralmente calculando os itens anteriores para obter a sequência Especifique o valor do item. A idéia é transformar um processo de cálculo complexo e enorme em várias repetições de um processo simples, que aproveita as características de computadores rápidos e máquinas incansáveis.
int fib[50]; //采用数组保存中间结果,假设最多不超过50个数
//若不用数组,用三个变量循环赋值也可代替
int fibonacci(int n) //参数为所求的第n个数
{
fib[0] = 1;
fib[1] = 1; //初始化前两位
for (int i=2; i<=n; i++)
fib[i] = fib[i-1]+fib[i-2]; //根据规律循环
return fib[n];
}
2. Recursão
A técnica de programação que o programa chama direta ou indiretamente a si mesma é chamada de algoritmo recursivo.
int fibonacci(int n)
{
if (n<=1) return 1;
return fib(n-1)+fib(n-2);
}
Desvantagens: A eficiência desse algoritmo é muito baixa, porque a recursão é repetida muitas vezes.