Sequencia de fibonacci

2 respostas Resolvido
V

boa tarde, pq se eu colocar ele para gerar 92 sequencias, o código começa a errar a sequeciana ?

public static void main(String[] args) {

Scanner scam = new Scanner(<a href="http://System.in">System.in</a>);

String str = Sequência de Fibonnacci\n;

int sequencia = 1, antecesor = 0,aux;
System.out.print(str);

    while (true) {

        try {
            System.out.print("\nQuantos numeros dejesa gerar:\t");
            str = scam.nextLine();
            

            byte num = Byte.parseByte(str);

            if (num < 3 || num > 92) {
                System.out.println("ERRO: A quantidade deve estar entre 3 e 92!");
            } else {
                
                System.out.println("\n1");
                for (int cont = 1; cont <= num; cont++) {
                    
                    aux = sequencia;
                    sequencia  = sequencia + antecesor; 
                    antecesor = aux ;                         
                    System.out.println(sequencia);
                }break;
            }
        } catch (NumberFormatException nfe) {
            System.out.println("ERRO: dado Inválido!");
        }

    }
    
}

2 Respostas

RodrigoV10
Solucao aceita
Boa tarde Vitor.

Sua dúvida é bem simples de ser entendida. Você declarou que a sua sequência é do tipo in.

Quero que faça o seguinte, digite esse código:

System.out.println(Integer.MAX_VALUE);

Aparecerá [telefone removido], isso por que esse é o valor máximo positivo que o tipo int consegue armazenar.

A partir do contado 46, o valor da sequência ultrapassa o valor máximo, então ele faz um loop, começando pelo valor mínimo, que você pode conferir com esse código, e continua a sequência ate isso acontecer novamente

System.out.println(Integer.MIN_VALUE);

Existem 4 tipos primitivos de valores inteiros: byte, short, int e long. Todos esses tipos possuem um valor máximo e mínimo, e para valores maiores, o melhor é a utilização da classe BigInteger ou BigDecimal.

V

mt obrigado

Criado 7 de dezembro de 2017
Ultima resposta 8 de dez. de 2017
Respostas 2
Participantes 2