題組內容

二、

(一)下列的函式是 C 語言的 function:

請問呼叫 xyz(15, 40)以及呼叫 xyz(xyz(42, 63), xyz(105, 60))各會得到
多少?(10 分)

詳解 (共 1 筆)

詳解 提供者:writer_123456
題目的程式碼,其實就是暴力搜尋法的找最大公因數演算法

題目的XYZ(15,40)為例


i x=15 % i y=40 % i 是否跳脫
15 0 10  
14 1 12  
13 2 1  
12 3 4  
11 4 7  
10 5 0  
9 6 4  
8 7 0  
7 1 5  
6 3 4  
5 0 0 V
 
(依程式邏輯,i在14至6這一段在執行 X % i後,就會因為沒有等於0,就往下找)
15與40最大公因數為5

由此可以推出xyz(xyz(42, 63), xyz(105, 60))

xyz(42, 63) =21 
xyz(105, 60) = 15
xyz(21,15)=3