本帖最後由 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項為?- import java.util.Scanner;
- public class ch54
- {
- public static void main(String args[])
- {
- int x;
- Scanner s=new Scanner(System.in);
- System.out.print("請問想推算費式數列的第幾個項次? ");
- x=s.nextInt();
- System.out.println("費式數列的第"+x+"項, 值為: "+fib(x));
- }
- public static int fib(int n)
- {
- if(n<=1) //邊介條件,使遞迴函式不會無窮的執行下去
- return n;
- else
- return fib(n-1)+fib(n-2); //遞迴呼叫, 使函式漸漸往邊界條件移動
- }
- }
- /*
- fib(5)=fib(4)+fib(3)
- =fib(3)+fib(2)+fib(2)+fib(1)
- =fib(2)+fib(1)+fib(1)+fib(0)+fib(1)+fib(0)+1
- =fib(1)+fib(0)+1+1+1+1
- =1+1+1+1+1
- =5
- */
複製代碼 |