terça-feira, 22 de julho de 2014

Lista de exercícios de estruturas de repetições - 14 - A serie Fibonacci do matemático Leandro Fibonacci ficou famosa com o livro de Dan Brow, O código Da Vinci. Crie um algoritmo que leia um número inteiro positivo. Você deve mostrar até esse termo na serie Fibonacci. A serie Fibonacci tem como os seus dois primeiros termos 0 e 1 e os demais são a somas dos seus dois antecessores. Exemplo o terceiro termo é 0 + 1 = 1 o quarto termos e 1 + 1 = 2 o quinto é 1 + 2 = 3. Exemplo da serie: 0, 1, 1, 2, 3, 5 ...

//Questao14
A serie Fibonacci do matemático Leandro Fibonacci ficou famosa com o livro de Dan Brow, O código Da Vinci. Crie um algoritmo que leia um número inteiro positivo. Você deve mostrar até esse termo na serie Fibonacci. A serie Fibonacci tem como os seus dois primeiros termos 0 e 1 e os demais são a somas dos seus dois antecessores. Exemplo o terceiro termo é 0 + 1 = 1 o quarto termos e 1 + 1 = 2 o quinto é 1 + 2 = 3. Exemplo da serie: 0, 1, 1, 2, 3, 5 ...

import java.util.Scanner;


public class Questao14 {

    public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
   
        int anterior = 0, atual = 1, prox = 0, n;
        
        System.out.println("Digite um numero de termos");
        n = leia.nextInt();
        //Observe que os dois algoritmos respondem a questao porem esse ha um no alto de
        //selecoes dentro da repeticao p que nao e bom para performace da aplicacao
        
//        for (int i = 0; i < n; i++) {
//            if ( i == 0 ) {
//                System.out.println( anterior );
//            } else if ( i == 1 ) {
//                System.out.println( atual );
//            } else {
//                prox = anterior + atual;
//                System.out.println( prox );
//                anterior = atual;
//                atual = prox;
//            }
//        }
        
        anterior = 0;
        atual = 1;
        prox = 0;
        
        if ( n > 0 ) {
       
        if ( n >= 1 ) {
        System.out.println( anterior );
        }
       
        if ( n >= 2 ) {
        System.out.println( atual );
        }
       
        for (int i = 2; i < n; i++) {
        prox = anterior + atual;
        System.out.println( prox );
        anterior = atual;
        atual = prox;
        }
        }
    }

}

Nenhum comentário:

Postar um comentário