当前位置 博文首页 > Keven_11的博客:C++题解:多个数的最小公倍数
??目录
题目?
题解
求?n?个数的最小公倍数。
输入格式
第一行一个整数 n?(2≤n≤20)。
第二行?n?个整数。
输出格式
一个整数,表示最小公倍数,数据保证答案不超过
int
范围。输出时每行末尾的多余空格,不影响答案正确性
要求使用「文件输入输出」的方式解题,输入文件为?
lcm.in
,输出文件为?lcm.out
样例输入
5 2 4 6 8 10样例输出
120题解:
知识点:数学
分析:题目比较简单,需要运用公式(a,b)×[a,b]=ab以及欧几里得算法,其实C++有个叫__gcd( , )的函数,可自动求最大公约数
代码:
cs#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int gcd(int a,int b){//欧几里得算法,即辗转相除法, if (b==0){ return a; } return gcd(b,a%b); } int main(){ freopen("lcm.in","r",stdin); freopen("lcm.out","w",stdout); int n,x=1,a;//注意要初始化x,x即答案 scanf("%d",&n); while (n--){ scanf("%d",&a); x=x/gcd(max(a,x),min(a,x))*a;//注意写法,不然爆int } printf("%d",x); return 0; }
下一篇:没有了