解题思路:
求a1,a2,...,an的最小公倍数,可以求a1,a2的最小公倍数b1,再求b1,a3的最小公倍数b2,...,直到求出b(n-2),an的最小公倍数b(n-1),则b(n-1)是a1,a2,...,an的最小公倍数
这个算法不是自己想出来的,在 https://www.zhihu.com/question/40317094 有一个回答点明了这个思路
不过应该有更优算法我还没有掌握
注意事项:
参考代码:
/* * 1446.c * * Created on: 2018年2月27日 * Author: susu */ #include<stdio.h> #include<math.h> // 最大公约数 Greatest Common Divisor(GCD) int FindGCD(int a, int b) { int r, tmp; if(b > a) { tmp = a; a = b; b = tmp; } r = a % b; while(r != 0) { a = b; b = r; r = a % b; } return b; } // 最小公倍数 Least Common Multiple(LCM) int FindLCM(int a, int b ) { int r; r = a * b / FindGCD(a, b); return r; } int main() { int a1, a2, a3; scanf("%d%d%d", &a1, &a2, &a3); int b1 = FindLCM(a1, a2); int b2 = FindLCM(b1, a3); printf("%d\n", b2); return 0; }
0.0分
0 人评分
有关字符,字符串的输入输出函数说明浏览:498 |
2^k进制数 (C语言描述,蓝桥杯)浏览:1457 |
淘淘的名单 (C语言代码)浏览:1309 |
班级人数 (C语言代码)浏览:981 |
A+B for Input-Output Practice (I) (C语言代码)浏览:599 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:683 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:522 |
检查金币 (C语言代码)浏览:1506 |
简单的a+b (C语言代码)浏览:667 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:479 |