統測
111年
[電機與電子群資電類] 專業科目(2)
第 44 題
下列C語言程式碼片段執行結果,變數y的值為何?
```c
int y, r, a=30, b=42;
r=a%b;
while(r!=0 )
{
a=b;
b=r;
r=a%b;
}
y=b;
```
- A 42
- B 30
- C 12
- D 6
思路引導 VIP
請仔細觀察 while 迴圈中的運算邏輯:程式重複執行取餘數運算 %,並將原本的除數賦值給 $a$、餘數賦值給 $b$,直到餘數 $r$ 為 $0$ 為止。這種透過「餘數」不斷迭代來更新變數的程序,對應到數學中求解兩個整數 $30$ 與 $42$ 之「最大公因數 (GCD)」的哪一個經典演算法?
🤖
AI 詳解
AI 專屬家教
🌟 太棒了!精準掌握演算法邏輯!
這題你選對了,代表你對 C 語言的 while 迴圈 與 餘數運算 有非常紮實的理解。這不只是簡單的程式追蹤,更是在考驗你對經典演算法的敏銳度!
1. 觀念驗證:為什麼答案是 6?
▼ 還有更多解析內容