标签:
最小公倍数和最大公约数 在学校的时候 不管学什么编程 练习总会有这个题 看起来挺简单的
其实 它就是那么的简单
在编代码之前 我们可以做一下这样的假设
有两个数 m、n
最大公约数是a
那么 m = b * a;
n = c * a;
那么 最小公倍数k = a * b * c;
k = m * n / a;
所以 求出最大公约数a是关键
那说到这里 最大公约数咋求呢
公约数就是m、n都能整除的数且是最大的那个 但是不能比m、n其中一个大 必须小于等于 m、n中最小的那个数
那么就把m、n中最小的数赋值给smallNumber,大得数赋值给largeNumber, 然后从 2 到smallNumber之间遍历
value来记录他们公约数 知道循环到smallNumber 最后value 就是最大的那个公约数
那么,下面就用代码 来实现这个小小的算法 呵呵呵呵呵呵呵
//声明一个函数 求得m、n的最大公约数 int maxCommonDivide(int m,int n){ int value,smallNumber,largeNumber; /* //求出最大数和最小数 largeNumber = m > n ? m : n; smallNumber = m < n ? m : n; */ if (m >= n) { smallNumber = n; largeNumber = m; } if (n > m) { smallNumber = m; largeNumber = n; } for (int i = 2; i <= smallNumber; i++) { if ((smallNumber % i == 0) && (largeNumber % i == 0)) { value = i; } } return value; } //声明并实现一个函数 根据最大公约数来求出最小公倍数 int minCommonMultiple(int m, int n){ return m * n / maxCommonDivide(m, n); } int main(int argc, const char * argv[]){ int maxCommonDivideNumber = maxCommonDivide(19, 9); int minCommonMultipleNumber = minCommonMultiple(19, 9); return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/qq1791422018/article/details/47209567