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�
- 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;
}
}
}