Imprimir Fibonacci até um limite n. Os números de Fibonacci satisfazem as condições seguintes: F0 = 0 F1 = 1 Fi = Fi-1 + Fi-2; i maior ou igual 2
17/01/2020
0
Olá!
Estou com esta atividade, criei o código, mas quando digito 1 imagino que o retorno deveria ser 1. No entanto sempre vem 0. Alguma dica sobre a correção ou melhoria do código?
package tema6_1_3;
import java.util.Scanner;
public class Tema6_1_3a {
public static int calcular(int numero) {
if (numero == 0 || numero == 1)
return numero;
else
return calcular(numero - 1) + calcular(numero - 2);
}
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int numero;
System.out.println("Informe o número desejado: ");
numero = entrada.nextInt();
System.out.println("Série de Fibonacci: " + "\n" + "0");
for (int x = 1; x < numero; x++) {
int y = Tema6_1_3a.calcular(x);
System.out.println(y);
entrada.close();
}
}
}
Estou com esta atividade, criei o código, mas quando digito 1 imagino que o retorno deveria ser 1. No entanto sempre vem 0. Alguma dica sobre a correção ou melhoria do código?
package tema6_1_3;
import java.util.Scanner;
public class Tema6_1_3a {
public static int calcular(int numero) {
if (numero == 0 || numero == 1)
return numero;
else
return calcular(numero - 1) + calcular(numero - 2);
}
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int numero;
System.out.println("Informe o número desejado: ");
numero = entrada.nextInt();
System.out.println("Série de Fibonacci: " + "\n" + "0");
for (int x = 1; x < numero; x++) {
int y = Tema6_1_3a.calcular(x);
System.out.println(y);
entrada.close();
}
}
}
João Medeiros
Curtir tópico
+ 0
Responder
Post mais votado
17/01/2020
Você errou nessa linha aqui:
Pense bem, x = 1, o for executa se x < numero, então se x = numero o for não executa, em outras palavras, se o número for 1 o for não será executado, mas se for 2 ou mais o programa funcionará normalmente, a solução é substuir o x < numero por x <= numero, desse jeito:
for (int x = 1; x < numero; x++) {
Pense bem, x = 1, o for executa se x < numero, então se x = numero o for não executa, em outras palavras, se o número for 1 o for não será executado, mas se for 2 ou mais o programa funcionará normalmente, a solução é substuir o x < numero por x <= numero, desse jeito:
for (int x = 1; x <= numero; x++) {
Sadasd
Responder
Mais Posts
17/01/2020
João Medeiros
Você errou nessa linha aqui:
Pense bem, x = 1, o for executa se x < numero, então se x = numero o for não executa, em outras palavras, se o número for 1 o for não será executado, mas se for 2 ou mais o programa funcionará normalmente, a solução é substuir o x < numero por x <= numero, desse jeito:
for (int x = 1; x < numero; x++) {
Pense bem, x = 1, o for executa se x < numero, então se x = numero o for não executa, em outras palavras, se o número for 1 o for não será executado, mas se for 2 ou mais o programa funcionará normalmente, a solução é substuir o x < numero por x <= numero, desse jeito:
for (int x = 1; x <= numero; x++) {
Perfeito, Daniel!
Eu estava tentando achar a solução sempre no if-else da classe "calcular" e não atentei para o for.
Muito obrigado!
Responder
Clique aqui para fazer login e interagir na Comunidade :)