class Fibonacci{
int var1;
int var2;
int var3;
void calculaFibonacci(int var, int i){
if(i == 0){
var1 = 0;
System.out.println(var1);
}
if(i == 1){
var2 = 1;
System.out.println(var2);
}
if(i > 1){
var3 = (var1 + var2);
var1 = var2;
var2 = var3;
System.out.println(var3);
}
if(i <= var){
calculaFibonacci(var, ++i);
}
}
}
class TestaFibonacci{
public static void main(String [] args){
Fibonacci fibo = new Fibonacci();
fibo.calculaFibonacci(5,0);
System.out.println(fibo.var3);
}
}
Fibonacci recursivo usando arrays
G
Boa tarde pessoal, estou com uma duvida neste exercício aqui.
5.7 - Desafios
1) 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
Obrigado a todos.
4 Respostas
public static void calculaFibonacci(List<Integer> 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);
}
passa pra array...
Se todo estudante em seus trabalhos viesse ao guj, e o povo desse de mão beijada, pq estudar então.
pense nisso!
G
Valeu amigo, vou tentar aqui! Abraços...public static void calculaFibonacci(List<Integer> 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); }passa pra array...
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%C3%BAmero_de_Fibonacci
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]);
}
}
}
Criado 21 de março de 2011
Ultima resposta 6 de out. de 2012
Respostas 4
Participantes 4
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo