📜  算法|分而治之|问题2

📅  最后修改于: 2021-06-29 05:01:12             🧑  作者: Mango

考虑下面的C程序

int main() 
{ 
   int x, y, m, n; 
   scanf ("%d %d", &x, &y); 
   /* x > 0 and y > 0 */
   m = x; n = y; 
   while (m != n) 
   { 
      if(m>n) 
         m = m - n; 
      else
         n = n - m; 
   } 
   printf("%d", n); 
}

程序计算什么? (GATE CS 2004)
(A) x + y使用重复减法
(B) x mod y使用重复减法
(C) x和y的最大公约数
(D) x和y的最小公倍数

答案: (C)
说明:这是Euclid算法查找GCD的实现