
代號:
頁次:
-
三、請以遞迴(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) = %dn", sumOfEvens(0));
System.out.printf("sumOfEvens(1) = %dn", sumOfEvens(1));
System.out.printf("sumOfEvens(2) = %dn", sumOfEvens(2));
System.out.printf("sumOfEvens(10) = %dn", sumOfEvens(10));
System.out.printf("sumOfEvens(15) = %dn", sumOfEvens(15));
}
}
執行結果:
sumOfEvens(0) = 0
sumOfEvens(1) = 0
sumOfEvens(2) = 2
sumOfEvens(10) = 30
sumOfEvens(15) = 56
四、請寫出以下 Python 程式的執行結果。(15 分)
def secret(nums, target):
seen = []
for index, num in enumerate(nums):
other = target - num
if other in seen:
return [seen[other], index]
else:
seen[num] = index
return []
print(secret([1,3,5], 4))
print(secret([2,3,6,8,10], 16))
print(secret([1,3,5], 7))