Recursion: Function to calculate a certain pair term of the Fibonacci series

0

I was able to do the calculation by creating two functions, one to calculate any term of the sequence (recursive), and another to test whether the returned terms are even or not.

Function to calculate terms:

  /**
    * Funcao: calcular certo termo par da série de Fibonacci começando em 1
    * @param quantidade - termo desejado na sequencia Fibonacci
    *
    * valores esperados para quantidade = 1
    * 2
    * valores esperados para quantidade = 2
    * 8
    * valores esperados para quantidade = 5
    * 610
    */
  public static int funcao08 (int quantidade){

    int termo = 0;

    if (quantidade == 1 || quantidade == 2){

      return (1);

    } else {

      if (quantidade > 1){

        termo = funcao08(quantidade - 1) + funcao08(quantidade - 2);

      } // fim do if

    return termo;

    }// fim do if

  } // fim do funcao08

Function to test whether the term is even:

  /**
    * Funcao para auxiliar a achar um determinado termo par
    * na sequencia Fibonacci.
    *
    */
  public static int numeroPar(){

    int termo;
    int controle = 1;
    int termoPar = 0;

    termo = IO.readint("Informe a ordem do termo par: ");

    while (termo > 0){

      // para controle = 1 pega o primeiro termo
      termoPar = funcao08(controle);

      // testa se o termo é par
      if (termoPar % 2 == 0){

        // se o termo for par decrescer 1
        // para indicar que um termo foi encontrado
        termo = termo - 1;

        // para passar para o proximo termo
        controle = controle + 1;

      } else {

        // se o termo nao for par acrescer uma unidade a controle
        // para pegar o proximo termo e testar
        controle = controle + 1;

      } // fim do if

    } // fim do while

    return termoPar;

  } // fim de numeroPar

How to make this parsimonious test only with a recursive function?

    
asked by anonymous 23.09.2018 / 01:33

0 answers