Oi pessoal, estou com a seguinte dúvida neste exercício:
6-(opcional) Imprima os primeiros números da série de Fibonacci até passar de 100. A série de Fibonacci é a
seguinte: 0, 1, 1, 2, 3, 5, 8, 13, 21, etc… Para calculá-la, o primeiro e segundo elementos valem 1, daí por
diante, o n-ésimo elemento vale o (n-1)-ésimo elemento somado ao (n-2)-ésimo elemento (ex: 8 = 5 + 3).
Eu sei que a sequencia Fibonacci é a soma dos dois algarismos anteriores, porém eu nao entendi como eu coloco isso no código. Alguem poderia me explicar?
Muito obrigado a todos do fórum, vocês estão me ajudando muito, que sempre tiveram paciência em sanar minhas dúvidas.
Eu faria assim, teste aí para ver se é isso mesmo.
public class fibo{
static int fib(int n){
if(n<=2)
return 1;
else
return fib(n-1) + fib(n-2);
}
public static void main(String[] arg){
int n = 0;
for(int i = 1; n < 100; i++){
n = fib(i);
System.out.println(n);
}
}
}
Também estou resolvendo esse exercício. E fiz da seguinte maneira:
System.out.println("Imprima os primeiros números da série de Fibonacci até passar de 100:");
for (int i = 0, i1 = 0, i2 = 1; i1 + i2 <= 100 ; i++) {
System.out.println("Série de Fibonacci: " + i1);
i2 += i1;
System.out.println("Série de Fibonacci: " + i2);
i1 += i2;
}
[quote=Gustavo.Haluch]Também estou resolvendo esse exercício. E fiz da seguinte maneira:
System.out.println("Imprima os primeiros números da série de Fibonacci até passar de 100:");
for (int i = 0, i1 = 0, i2 = 1; i1 + i2 <= 100 ; i++) {
System.out.println("Série de Fibonacci: " + i1);
i2 += i1;
System.out.println("Série de Fibonacci: " + i2);
i1 += i2;
}[/quote]
Verdade Gustavo, seu código está imprimindo Fibonacci, eu nunca tinha pensado dessa forma, mas o amigo mazoni tava querendo um método com duas variáveis, o seu método usa três variaveis. Experimente fazer com while.
Notei que a apostila da Caelum dias que a Sequência Fibonacci é 0, 1, 1, 2, 3, 5 …, mas logo em seguida diz que os dois primeiro elemntos valem 1. Afinal, ela quer que comece com 1 ou com zero. A Sequência Fibonacci inicia com 0 ou com 1? Já pesquisei sobre isso e não achei nada concreto.
Não testei, mas duvido muito que de errado, a propósito, diria que o código abaixo só usa 2 variáveis, pois a do for ela é excluída após o loop, mas se ainda assim você quer com menos que essas variáveis, você deva tentar com while(true) e usar o if para verificar se a série está maior que determinado número, etc. Boa sorte.
class Fibonacci {
public static void main(String[] args) {
int i=1;
int ii=1;
for(int a=0; a<30; a++) {
System.out.print(i+", ");
i += ii;
System.out.print(ii+", ");
ii += i;
}
}
}
Olá a todos, achei esse tópico enquanto também estudava a questão.
Encontrei essa solução que pra mim foi a mais simples e de fácil entendimento:
[code]public class Exercicio6 {
public static void main(String[] args) {
int a = 0;
int b = 1;
System.out.println(a);
while (b < 100){
System.out.println(b);
b = a + b; //próximo número fibonacci
a = b - a; //atualiza número anterior
}
}