Olá pessoal, boa noite.
Gostaria de saber como eu faço esse algoritmo.
Implementar recursivamente o algoritmo que calcula os números da série de Fibonacci.
A série de Fibonacci é a seguinte:
0,1,1,2,3,5,8…
Para calculá-la, o primeiro e o segundo elementos valem 1(casos base), daí por diante, o n-ésimo elemento vale o (n-1)-ésimo elemento somado ao (n-2)-ésimo elemento.
Exemplo:
8 = 5 + 3
13 = 8 + 5
Definição: F(n)
0 ----- n ==0;
1 ----- n ==1;
F(n-1)+F(n-2) ---- n > 1;
Eu fiz assim:
[code]public static void main(String args[]) {
for (int i = 0; i <= 15; i++) {
System.out.println("(" + i + “)” + Fibonacci(i));
}
}
public static int Fibonacci(int n) {
if (n == 0) {
return 0;
} else {
if (n == 1) {
return 1;
} else {
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
}[/code]
Será que está correto? Me ajudem por favor.
Blz, evita postar sua duvida de primeira, primeiro pesquisa. Essa duvida é bem simples e tem bastante post sobre isso alguns bem legais
http://www.guj.com.br/search?cx=partner-pub-9448585618971060%3A4001950301&cof=FORID%3A10&ie=UTF-8&q=Fibonacci+recursivo&x=20&y=2&siteurl=www.guj.com.br%2Fjforum.java%3Fmodule%3Dsearch%26action%3Dsearch%26search_keywords%3Dfibonacci%2Brecursivo%26match_type%3Dall%26search_forum%3D4%26sort_by%3Drelevance&ref=&ss=3170j5265276j6
Esse em particular me ajudou bastante quando tava nesse exercicio:
http://www.guj.com.br/java/108080-fibonacci—calculo-recursivo
Ta correto, vc poderia usar somente um if
if (n < 2) { return n; }
[code]
public int fiboTeste(int n) {
if (n < 2) {
return n;
}
return fiboTeste(n - 1) + fiboTeste(n - 2);
}[/code]
Outra coisa, vc não precisa declarar ifs dentros dos elses:
public static int Fibonacci(int n) {
if (n == 0) {
return 0;
} else {
if (n == 1) {
return 1;
} else {
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
}
Seria assim:public int fiboTeste(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
}
return fiboTeste(n - 1) + fiboTeste(n - 2);
}
Ou que tal nenhum if?
public int fiboTeste(int n) {
return n < 2 ? n : fiboTeste(n - 1) + fiboTeste(n - 2);
}
[quote=RodrigoKaos]Blz, evita postar sua duvida de primeira, primeiro pesquisa. Essa duvida é bem simples e tem bastante post sobre isso alguns bem legais
http://www.guj.com.br/search?cx=partner-pub-9448585618971060%3A4001950301&cof=FORID%3A10&ie=UTF-8&q=Fibonacci+recursivo&x=20&y=2&siteurl=www.guj.com.br%2Fjforum.java%3Fmodule%3Dsearch%26action%3Dsearch%26search_keywords%3Dfibonacci%2Brecursivo%26match_type%3Dall%26search_forum%3D4%26sort_by%3Drelevance&ref=&ss=3170j5265276j6
Esse em particular me ajudou bastante quando tava nesse exercicio:
http://www.guj.com.br/java/108080-fibonacci—calculo-recursivo
Ta correto, vc poderia usar somente um if
if (n < 2) { return n; }
[code]
public int fiboTeste(int n) {
if (n < 2) {
return n;
}
return fiboTeste(n - 1) + fiboTeste(n - 2);
}[/code]
Outra coisa, vc não precisa declarar ifs dentros dos elses:
public static int Fibonacci(int n) {
if (n == 0) {
return 0;
} else {
if (n == 1) {
return 1;
} else {
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
}
Seria assim:public int fiboTeste(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
}
return fiboTeste(n - 1) + fiboTeste(n - 2);
}
[/quote]
Muito obrigado! Ajudou bastante. Pode deixar, irei pesquisar antes de postar.
[quote=ViniGodoy]Ou que tal nenhum if?
public int fiboTeste(int n) {
return n < 2 ? n : fiboTeste(n - 1) + fiboTeste(n - 2);
}
[/quote]
Muito obrigado! Fica até mais simples o código.