Boa tarde pessoal, estou com uma duvida neste exercício aqui.
5.7 - Desafios
No capítulo anterior, você deve ter reparado que a versão recursiva para o problema de Fibonacci é lenta
porque toda hora estamos recalculando valores. Faça com que a versão recursiva seja tão boa quanto a
versão iterativa. (Dica: use arrays para isso)
Eu consegui fazer o problema de Fibonacci de forma recursiva sem o uso de arrays, agora, com o mesmo tah dificio. confesso que não peguei legal sobre “Arrays”.
Poderiam me ajudar? Meu código[code]class Fibonacci{
[quote=victor.hugooooo][code] public static void calculaFibonacci(List fib, int num) {
if (num > 0) {
if (fib.size() == 0) {
fib.add(0);
} else if (fib.size() == 1) {
fib.add(1);
} else {
fib.add(fib.get(fib.size() - 2) + fib.get(fib.size() - 1));
}
calculaFibonacci(fib, --num);
}
}
public static void main (String[] args) {
List<Integer> fib = new ArrayList<Integer>();
calculaFibonacci(fib, 6);
System.out.println(fib);
}
[/code]
passa pra array…[/quote]Valeu amigo, vou tentar aqui! Abraços…
[quote=yoshikichi]
Se todo estudante em seus trabalhos viesse ao guj, e o povo desse de mão beijada, pq estudar então.
pense nisso! http://pt.wikipedia.org/wiki/Número_de_Fibonacci[/quote]
Obrigado Yoshikichi, sua resposta foi de grande ajuda! rs
public class FibonacciArrays {
public static void main(String[] args) {
long[] l = new long[10];
for (int i = 0; i < l.length; i++) {
if (i == 0) {
l[i] = 0;
}
if (i > 0 && i <= 2) {
l[i] = 1;
}
if (i > 2) {
l[i] = l[i - 1] + l[i - 2];
}
System.out.println(l[i]);
}
}