免費開始練習
地特三等申論題 110年 [資訊處理] 程式設計

第 三 題

三、請問下列程式碼之輸出結果以及該程式碼的目的為何?(25 分) #include "stdio.h" int f(int a, int b) { if(a%b == 0) return b; return f(b,a%b); } int main(void) { printf("f(21,9) = %d\n",f(21,9)); printf("f(6,44) = %d\n",f(6,44)); return 0; }
📝 此題為申論題

思路引導 VIP

看到遞迴函數 f(a, b) 且傳遞參數為 (b, a%b) 時,應立即聯想到經典的「輾轉相除法」(歐幾里得演算法)。解題時先依序將數值代入函數追蹤遞迴步驟求得輸出,再點出該演算法的數學意義即為求取兩整數的最大公因數。

🤖
AI 詳解 AI 專屬家教

【解題思路】本題考查遞迴函數的執行流程追蹤與經典演算法的辨識,此遞迴結構為標準的「輾轉相除法」(歐幾里得演算法)。 【詳解】 一、執行過程推導:

▼ 還有更多解析內容

📝 同份考卷的其他題目

查看 110年[資訊處理] 程式設計 全題

升級 VIP 解鎖