設計說明:
1. 畫面顯示[Input n (0 <= n <= 16):],並於後方要求輸入一個整數。
2. 分別使用尾端遞迴及迴圈計算 n 的階乘,直到輸入為999為止,執行結果如範例圖。
參考程式碼:
注:尾端遞迴是指一個函數裡的最後一個動作是一個函式呼叫的情形,即這個呼叫的返回值直接被當前函式返回的情形。
TQC+ Java 試題總整理
- import java.util.*;
- public class JPA402{
- static Scanner keyboard = new Scanner(System.in);
- public static void main(String args[]) {
- int n,sum=1;
- System.out.printf("Input n (0 <= n <= 16):");
- n = keyboard.nextInt();
- while(n!=999){
- System.out.println(n + " 的階層(尾端遞迴) = " + backfactorial(n,sum));
- System.out.println(n + " 的階層(迴圈) = " + loop(n));
- System.out.printf("Input n (0 <= n <= 16):");
- n = keyboard.nextInt();
- }
- }
- static int loop(int n){
- int sum=1,i;
- for(i=1;i<=n;i++){
- sum*=i;
- }
- return sum;
- }
- static int backfactorial(int n,int sum){
- if (n==1) return sum;
- else return backfactorial(n-1,n*sum);
- }
- }
注:尾端遞迴是指一個函數裡的最後一個動作是一個函式呼叫的情形,即這個呼叫的返回值直接被當前函式返回的情形。
TQC+ Java 試題總整理
聲明:
這裡的範例程式碼皆由本人親自編輯,歡迎轉載本教學,但請註明本網站,尊重一下作者的心血
沒有留言:
張貼留言
歡迎留言,較舊文章需要留言審核看不到自己的留言是正常的。
若長時間無回應請使用以下聯絡方式:
填寫表單:https://forms.gle/hxxX9n4tATcFnhnk8
寄信到:happyplayblogs@gmail.com