Algorítmo de Fibonacci

dessa forma usei RECURSIVA COM VETOR, sendo que seja melhor que a iterativa

vetor = array?

não entendi aquele return recursao(n); lá em cima como se fosse declarando uma variavel

em algoritmo sim é a mesma coisa…ate mesmo no java

vc pelo - executou esse algoritimo?

não não… to procurando entender primeiro pra embutir no meu programa…

olha só:

[code]public class Fibonacci {

int a = 1;
int b = 1;
int j = 0;

int[] numero = new int[30];	

int calculafibonacci(int x){
	if (x == 1){
		this.numero[j] = 0;
		j++;
		return 0;
	}
	for(int i = 1; i < (x-1); i++){
		b = a - b;		
		a = a+b;
		this.numero[j] = a;
		j++;
	}
	System.out.println(this.numero[j]);
	return 1;		
}		

}

public class Teste {
public static void main (String[] args){
Fibonacci fibo = new Fibonacci();

int i = fibo.calculafibonacci(10);
System.out.println(i);
}

}[/code]

o this.numero[j] sempre retorna 0(zero)

eu nao entendi foi o return recursao(n); lá em cima como se fosse declarando uma variavel

Consegui =D

[code]public class Fibonacci {

int a = 1;
int b = 1;
int j = 0;

int[] numero = new int[11];	

int calculafibonacci(int x){
	if (x == 1){
		this.numero[0] = 0;
		return this.numero[0];
	}
	else{
		this.numero[0] = 0;
		j++;
	}
	for(int i = 1; i < (x-1); i++){
		b = a - b;		
		a = a+b;
		this.numero[j] = a;
		j++;
	}		
	return this.numero[j-1];		
}		

}[/code]

[code]public class Teste {
public static void main (String[] args){
Fibonacci fibo = new Fibonacci();

int i = fibo.calculafibonacci(10);
System.out.println(i);
}

}[/code]

Levando em consideração o que foi explicado até o exercicio da apostila da caelum onde não havia sido explicado recursifidade, pegando em meus arquivos me deparei com esse exercicio respondido.
3.14 Desafios: Fibonacci�

  1. Faça o exercício da série de Fibonacci usando apenas duas variáveis.
class Exercicio1{
	public static void main(String[] args){
		int fibonacci=0;
		int antfibonacci=1;
		System.out.print(fibonacci+", ");
		do{
			if(fibonacci<2){
				fibonacci++;
				System.out.print("1, ");
			}else{
				System.out.print(fibonacci+", ");
				fibonacci=fibonacci+antfibonacci;
				antfibonacci=fibonacci-antfibonacci;
			}
		}while(fibonacci<100);
	}
}

Por favor, evite ressuscitar tópicos. Especialmente os já respondidos. Sua resposta é até mais rebuscada do que as apresentadas nesse mesmo tópico.

Por favor, evite ressuscitar tópicos. Especialmente os já respondidos. Sua resposta é até mais rebuscada do que as apresentadas nesse mesmo tópico.[/quote]
ops, não vi que a própria pessoa que abriu o topco já tinha achado a solução com o for adaptado

O meu código ficou assim:

class Desafio{
public static void main(String[] args){
int x=0,y=1;
while(x<100){
System.out.print(x+" - ");
y += x;
x = y - x;
}
System.out.print(x);
}
}

um exemplo bem simples para se resolver isso é assim:

[code]
public static void main(String[] args) {
int fibo[] = new int[20];
int fibo02[] = new int[20];
int i;

    for(i= 1; i < 20; i++){
        fibo02[i] = i;
    }
    fibo[1] = 1;
    fibo[2] = 1;
    System.out.println("Fibonacci de: "+fibo02[1]+" é: "+ fibo[1]);
    System.out.println("Fibonacci de: "+fibo02[2]+" é: "+ fibo[2]);
    
    for(i = 1; i < 18; i++){
        fibo[i+2] = fibo[i]+fibo[i+1];
        System.out.println("Fibonacci de: "+fibo02[i+2]+ " é: "+fibo[i+2]);
    }

}[/code]
espero ter ajudado…vlw

Sou novato no Java, mas depois de pensar um pouco acredito que consegui resolver com duas var assim:

public class fionacci_duas_var {
public static void main(String[] args) {
int prim = 0;
int seg = 1;
while ( prim < 100){
System.out.println(prim);
seg += prim;
prim = seg - prim;
}
}
}