C语言经典算法(二)——求最小公倍数的两种方法
2017-12-19 20:04
1081 查看
今后继续整理算法并写出自己的理解和备注
C++实现:最小公倍数。C语言同理。
1、 最小公倍数
<1> 题目描述:求解两个整数(不能是负数)的最小公倍数
<2> 方法一:穷举法
<3> 方法二:公式lcm = a * b / gcd(a,b)
源码:
一、 最小公倍数
1、 穷举法
2、公式lcm = a * b / gcd(a,b)
C++实现:最小公倍数。C语言同理。
1、 最小公倍数
<1> 题目描述:求解两个整数(不能是负数)的最小公倍数
<2> 方法一:穷举法
<3> 方法二:公式lcm = a * b / gcd(a,b)
源码:
一、 最小公倍数
1、 穷举法
#include<iostream> using namespace std; unsigned long LCM(unsigned long a, unsigned long b) { if(a * b == 0) return 0;//其中一个数为0,则最小公倍数为0; unsigned long lcm = a > b ? a : b;//取出较大的一个 while(1) { if((lcm%a==0) && (lcm%b==0))//同时满足整除a和b的数即是所求 break; lcm++; } return lcm; } void main() { unsigned long a,b; cout<<"请输入a 和b:>"; cin>>a>>b; unsigned long lcm = LCM(a,b); cout<<"lcm = "<<lcm<<endl; }
2、公式lcm = a * b / gcd(a,b)
#include<iostream> using namespace std; unsigned long GCD(unsigned long a, unsigned long b) { if(b == 0) return a; else return GCD(b, a%b);//可以回归上一篇文章算法(一),这是求最小公约数的方法。 } unsigned long LCM(unsigned long a, unsigned long b) { if(a * b == 0) return 0; return (a*b)/GCD(a,b);//使用公式 } void main() { unsigned long a,b; cout<<"请输入a 和b:>"; cin>>a>>b; unsigned long lcm = LCM(a,b); cout<<"lcm = "<<lcm<<endl; }
相关文章推荐
- C语言经典算法(八)——递归实现斐波那契数列的两种方法
- C语言经典算法(六)——递归实现字符串长度的两种方法
- C语言经典算法(七)——递归实现阶乘算法的两种方法
- C语言经典算法(五)——求位设置的两种方法
- C语言经典算法(九)——递归实现二分查找的两种方法
- C语言经典算法(四)——高效进制转换的三种方法
- 【1131】C/C++经典程序训练1---最大公约数与最小公倍数(两种方法)
- c 语言 求最大公约数 最小公倍数 两种方法:
- 排列和组合算法的实现方法_C语言经典案例
- C语言经典算法(三)——求二进制中1的个数的五种方法
- 处理僵尸进程的两种经典方法
- C语言经典算法
- 经典算法,每个语言都出现的算法
- SSE图像算法优化系列十六:经典USM锐化中的分支判断语句SSE实现的几种方法尝试。
- 求最小公倍数的两种方法!!!
- c语言经典算法—求0—7 所能组成的奇数个数
- 算法:两种对拼音进行智能切分的方法
- 算法竞赛入门经典 蛇形填数两种做法
- c语言经典算法第二例
- 反复平方法(很经典的算法)