返回列表 發帖

遞迴函式 - 費式數列

本帖最後由 tonyh 於 2013-1-12 17:02 編輯

費式數列規則如下:
第n項 = 第 n-1 項  + 第 n-2 項

即整個費式數列為:
1 1 2 3 5 8 13 21 34 55 89 144 233 377...

試設計一程式, 使能推算費式數列的第N項為?
  1. import java.util.Scanner;
  2. public class ch54
  3. {
  4.     public static void main(String args[])
  5.     {
  6.         int x;
  7.         Scanner s=new Scanner(System.in);
  8.         System.out.print("請問想推算費式數列的第幾個項次? ");
  9.         x=s.nextInt();
  10.         System.out.println("費式數列的第"+x+"項, 值為: "+fib(x));
  11.     }

  12.     public static int fib(int n)
  13.     {
  14.         if(n<=1)           //邊介條件,使遞迴函式不會無窮的執行下去
  15.             return n;
  16.         else
  17.             return fib(n-1)+fib(n-2);   //遞迴呼叫, 使函式漸漸往邊界條件移動
  18.     }
  19. }

  20. /*
  21. fib(5)=fib(4)+fib(3)
  22.       =fib(3)+fib(2)+fib(2)+fib(1)
  23.       =fib(2)+fib(1)+fib(1)+fib(0)+fib(1)+fib(0)+1
  24.       =fib(1)+fib(0)+1+1+1+1
  25.       =1+1+1+1+1
  26.       =5
  27. */
複製代碼

返回列表