Печать n-го числа Фибоначчи с помощью цикла for - PullRequest
0 голосов
/ 15 ноября 2018

Я написал эту программу, используя return, но хотел бы, чтобы программа делала то же самое, только используя метод run и цикл for.Следует напечатать n-е число в последовательности Фибоначчи.

import acm.program.*;


public class TESTfibonacci extends ConsoleProgram {

    public void run() {

        long n = readInt("Enter a number: ");
        println(fibo(n));
    }

        // Prints the n-th Fibonacci number.
        long fibo(long n) {
        if (n == 0) {
            return 0;
        } else if (n <= 2) {
            return 1;
        } else {
            return fibo(n - 2) + fibo(n - 1);
        }
    }
}

1 Ответ

0 голосов
/ 15 ноября 2018

вы можете использовать динамическое программирование для этого. Код взят из здесь

class Fibonacci {
  static int fib(int n) {
    /* Declare an array to store Fibonacci numbers. */
    int f[] = new int[n + 2]; // 1 extra to handle case, n = 0
    int i; 

    /* 0th and 1st number of the series are 0 and 1*/
    f[0] = 0;
    f[1] = 1;

    for (i = 2; i <= n; i++) {
    /* Add the previous 2 numbers in the series 
        and store it */
      f[i] = f[i - 1] + f[i - 2];
    }

    return f[n];
  }

  public static void main(String args[]) {
    int n = 9;
    System.out.println(fib(n));
  }
} 
...