- 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
- */
複製代碼 |