|
20鱼币
我i使用的辗转相除法,先求最大公约数,在用两个数的乘积除以最大公约数得到最小公倍数!
这是我开始的做法
- #include <stdio.h>
- int main()
- {
- int m, n, r1, temp, mul;
- scanf("%d%d", &m, &n);
- mul = m * n;
- if(m <= n)
- {
- temp = m;
- m = n;
- n = temp;
- }
- do
- {
- r1 = m % n;
- m = n;
- n = r1;
- } while(r1);
- printf("%d %d", m, mul / m);
- return 0;
- }
复制代码
这是我更改后的做法,就改了一下乘除顺序
- #include <stdio.h>
- int main()
- {
- int m, n, r1, temp, mul;
- scanf("%d%d", &m, &n);
- if(m <= n)
- {
- temp = m;
- m = n;
- n = temp;
- }
- temp = m, mul = n;
- do
- {
- r1 = m % n;
- m = n;
- n = r1;
- } while(r1);
- printf("%d %d", m, temp / m * mul);
- return 0;
- }
复制代码 这是我们学校的oj平台,上面的方法不能通过,下面的方法就能通过,不知道什么原因,求解答!!!
|
|