解题思路:解决最大公约数的一种比较高效的方法就是辗转相除法,这种方法体现了数学解题方法在编程中的应用,而且改编成代码语言也并不困难,所以新手值得牢记这个数学方法,并努力在只看数学方法的前提下,自己敲出代码。
辗转相除法:
辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
注意事项:这种方法需要定义大量变量,最好在演草纸上打打代码草稿,理清思路及变量。
参考代码:
#include<stdio.h>
int main()
{int M, N, m, n, t, max, min;
scanf_s("%d %d", &m, &n);
M = m; N = n;
while (m != 0){
if (m > n)m = m%n;
else if (n > m)
{
t = m;
m = n%m;
n = t;
}
}
min = M*N / n;
max = n;
printf("%d %d", max, min);
return 0;
}
0.0分
4 人评分
【明明的随机数】 (C++代码)浏览:781 |
【简单计算】 (C语言代码)浏览:622 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:719 |
筛排处理 (C语言代码)浏览:786 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:573 |
简单的a+b (C语言代码)浏览:560 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:607 |
C二级辅导-统计字符 (C语言描述——用函数求解)浏览:1181 |
采药 (C语言代码)浏览:922 |
【亲和数】 (C语言代码)浏览:694 |