免費開始練習
地特四等申論題 108年 [資訊處理] 程式設計概要

第 三 題

三、請以遞迴(recursive)的方式撰寫下列 Java 程式片斷中的 method sumOfEvens()。sumOfEvens(n)會回傳小於或等於 n 的所有正偶數的總和,例如 sumOfEvens(6)會回傳 12,因為 12 = 2+4+6。sumOfEvens()完成後,必須確保 main()執行後會印出正確結果,不需檢查 n 是否為含零的正整數。(20 分) public class Problem3 { public static int sumOfEvens(int x) { … } public static void main(String[] args) { System.out.printf("sumOfEvens(0) = %d\n", sumOfEvens(0)); System.out.printf("sumOfEvens(1) = %d\n", sumOfEvens(1)); System.out.printf("sumOfEvens(2) = %d\n", sumOfEvens(2)); System.out.printf("sumOfEvens(10) = %d\n", sumOfEvens(10)); System.out.printf("sumOfEvens(15) = %d\n", sumOfEvens(15)); } } 執行結果: sumOfEvens(0) = 0 sumOfEvens(1) = 0 sumOfEvens(2) = 2 sumOfEvens(10) = 30 sumOfEvens(15) = 56
📝 此題為申論題

思路引導 VIP

看到遞迴(Recursion)題目,首先要確立「終止條件(Base case)」與「遞迴步驟(Recursive step)」。此題要求正偶數總和,因此當傳入值小於等於 1 時(範圍內無正偶數)應回傳 0 作為終止條件;若傳入值為偶數,則將該數加上「傳入值減 2」的遞迴結果;若為奇數,則將傳入值減 1 轉為偶數後再進行遞迴。

🤖
AI 詳解 AI 專屬家教

【解題關鍵】掌握程式遞迴的兩大核心要件:「終止條件(Base Case)」與「遞迴步驟(Recursive Step)」。 【解答】 完整的 Java 程式碼實作如下:

▼ 還有更多解析內容

升級 VIP 解鎖