
TQC+ 物件導向程式語言 Java 6 407 尾端遞迴計算總和
題目說明:
請開啟檔案 JPD04.java,依下列題意完成作答。將 JPD04.java 內的 class JPD04 修改為 class JPA04,檔案另存成 JPA04.java,並編譯為 JPA04.class。
設計說明:
(1) 請使用尾端遞迴及迴圈撰寫一個類別方法,此方法能夠計算一個數字字串內所有數字的和。
(2) 程式執行時,顯示【Input a string of numbers: 】要求輸入數字字串。
(3) 連續執行兩次,如執行結果參考畫面,列出以「尾端遞迴」及「迴圈」計算後之數字總和。
執行結果參考畫面:

程式碼:
import java.util.Scanner;
public class JPA04 {
static Scanner keyboard = new Scanner(System.in);
public static void main(String args[]) {
String s;
System.out.print("Input a string of numbers: ");
s = keyboard.nextLine();
System.out.printf("尾端遞迴:%d\n", sumTail(s, 0));
System.out.printf("迴圈:%d\n", sumLoop(s, 0));
System.out.print("Input a string of numbers: ");
s = keyboard.nextLine();
System.out.printf("尾端遞迴:%d\n", sumTail(s, 0));
System.out.printf("迴圈:%d\n", sumLoop(s, 0));
}
static int sumTail(String str, int ans) {
if(str.length() == 0)
return ans;
return sumTail(str.substring(1), ans + Integer.parseInt(str.substring(0, 1)));
}
static int sumLoop(String str, int ans) {
for(int i = 0;i < str.length();i++)
ans += Integer.parseInt(str.substring(i, i + 1));
return ans;
}
}
TQC+ 物件導向程式語言 Java 6 第四類:遞迴程式設計
如果覺得文章內容還不錯的話,麻煩請幫我點個讚!感謝
可以多點幾次喔~~
第一次點讚需使用 Google 或 Facebook 帳號註冊

