ni


私信TA

用户名:ni2121

访问量:2086

签 名:

等  级
排  名 24496
经  验 569
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校 郑州大学
专  业

  自我简介:

解题思路:解决最大公约数的一种比较高效的方法就是辗转相除法,这种方法体现了数学解题方法在编程中的应用,而且改编成代码语言也并不困难,所以新手值得牢记这个数学方法,并努力在只看数学方法的前提下,自己敲出代码。

辗转相除法:

辗转相除法, 又名欧几里德算法(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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区