C语言设计 (第四版) 谭浩强 习题2.4(7)
习题 2.4(7) 求两个数m和n的最大公约数。
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法1:使用欧几里得算法
#include <stdio.h>
#include <stdlib.h>
int main(){
int m, n, mod;
scanf_s("%d %d", &m, &n);
mod = m % n;
while(mod != 0){
m = n;
n = mod;
mod = m % n;
}
printf("HCF = %d\n", n);
system("pause");
return 0;
}
方法2:使用for循环、函数的模块化设计
#include <stdio.h>
#include <stdlib.h>
int HCF(int m, int n){
for(int mod = m % n; mod != 0; mod = m % n){
m = n;
n = mod;
}
return n;
}
int main(){
int m, n, mod;
scanf_s("%d %d", &m, &n);
printf("HCF = %d\n", HCF(m, n));
system("pause");
return 0;
}