阿摩線上測驗 登入

申論題資訊

試卷:103年 - 103 一般警察特種考試_二等_刑事警察人員犯罪分析組:計算機概論(包括計算機結構、資料結構、程式設計)#25629
科目:計算機概論
年份:103年
排序:0

題組內容

二、以下為一個以 C 語言撰寫之程式。(每小題 5 分,共 15 分)
 

申論題內容

⑵當該程式執行時,若輸入的 a 及 b 值分別為 52 及 40,請問其執行結果為何?

詳解 (共 1 筆)

詳解 提供者:hchungw

當你調用 test 函數並傳入 a = 52 和 b = 40:

  1. 首先,函數檢查 a % b(52 % 40)是否為零,不為零,因為 52 除以 40 的餘數是 12。
  2. 因為餘數不為零,所以它遞迴地調用 test(b, a % b) 即 test(40, 12)。
  3. 在下一次遞迴調用中,函數檢查 a % b(40 % 12)是否為零,不為零,因為 40 除以 12 的餘數是 4。
  4. 函數再次遞迴地調用 test(b, a % b) 即 test(12, 4)。
  5. 這次,a % b(12 % 4)為零,因為 12 除以 4 沒有餘數。
  6. 因為餘數為零,函數返回當前的 b,也就是 4。

這一遞迴過程就是計算最大公約數的過程,最終結果是 4,表明 52 和 40 的最大公約數是 4。這也是程式執行結果的原因。