高考申論題
110年
[資訊處理] 程式設計
第 一 題
一、請問下列程式碼之輸出結果為何?(25 分)
#include
#include
int function(int n)
{
if (n < 10)
return n;
int sum = 0;
while (n > 0)
{
sum += n % 10;
n /= 10;
}
return function(sum);
}
int main()
{
int n = 12345;
int output;
output = function(n);
printf("output%d\n", output);
return 0;
}
📝 此題為申論題
思路引導 VIP
看到此題,應先辨識出這是一個計算數字『數位根(Digital Root)』的遞迴程式。解題時請採用逐步追蹤法 (Trace Code),記錄每次遞迴呼叫時各個位數相加的結果,並特別注意最後 printf 函式內的格式字串「output%d」中間並無空格。
🤖
AI 詳解
AI 專屬家教
【解題思路】逐步追蹤遞迴函式(Trace Code),觀察變數 n 與 sum 於每次迴圈與遞迴的變化。 【詳解】 已知初始條件:
▼ 還有更多解析內容