網站聲明

本網站包含了各式各樣的資源,如果有侵占到您的著作權,請與本人通知,本人會立即改進。本站所有發表僅屬研究討論性質,如果有任何後果請自行負責。

2015-05-13

TQC+ Java6 基本認識 402 尾端遞迴階層

402.
設計說明:

1. 畫面顯示[Input n (0 <= n <= 16):],並於後方要求輸入一個整數。
2. 分別使用尾端遞迴及迴圈計算 n 的階乘,直到輸入為999為止,執行結果如範例圖。

參考程式碼:
  1. import java.util.*;
  2. public class JPA402{
  3.  static Scanner keyboard = new Scanner(System.in);
  4.  public static void main(String args[]) {
  5.   int n,sum=1;
  6.   System.out.printf("Input n (0 <= n <= 16):");
  7.   n = keyboard.nextInt();
  8.   while(n!=999){
  9.    System.out.println(n + " 的階層(尾端遞迴) = " + backfactorial(n,sum));
  10.    System.out.println(n + " 的階層(迴圈) = " + loop(n));
  11.    System.out.printf("Input n (0 <= n <= 16):");
  12.    n = keyboard.nextInt();
  13.   }
  14.  }        
  15.  static int loop(int n){
  16.   int sum=1,i;
  17.   for(i=1;i<=n;i++){
  18.    sum*=i;
  19.   }
  20.   return sum;
  21.  }
  22.  static int backfactorial(int n,int sum){
  23.   if (n==1) return sum;
  24.   else return backfactorial(n-1,n*sum);
  25.  }
  26. }

注:尾端遞迴
是指一個函數裡的最後一個動作是一個函式呼叫的情形,即這個呼叫的返回值直接被當前函式返回的情形。

TQC+ Java 試題總整理

聲明:

這裡的範例程式碼皆由本人親自編輯,歡迎轉載本教學,但請註明本網站,尊重一下作者的心血

沒有留言:

張貼留言

歡迎留言,較舊文章需要留言審核看不到自己的留言是正常的。
若長時間無回應請使用以下聯絡方式:
填寫表單:https://forms.gle/hxxX9n4tATcFnhnk8
寄信到:happyplayblogs@gmail.com