C++ 多个数求最小公倍数 10

题目是先输入一个N,N代表之后输入N个数求他们的最小公倍数我自己测试了几个数据是对的。但是交到题库上就说我答案错误了是不是我有什么东西忽略了。求解。这是错误信息;====... 题目是先输入一个N,N代表之后输入N个数求他们的最小公倍数我自己测试了几个数据是对的。 但是交到题库上就说我答案错误了是不是我有什么东西忽略了。 求解。这是错误信息;
=================/data.out
Right:14549535
-----------------
Your:654729075
=================

以下是我写的程序;
#include<iostream>

using namespace std;
int GDC(int a,int b);
int main()
{
int n,i,a[50],r,sum;
while(cin>>n)
{
sum=1;
for(i=0;i<n;i++)
{
cin>>a[i];
sum=sum*a[i];
if(i==1)
{
r=GDC(a[0],a[1]);
}
if(i>1)
{
r=GDC(a[i],r);
}
}
cout<<sum/r<<endl;
}

return 0;
}

int GDC(int a,int b)
{
if(b>a)
{
int temp=a;
a=b;
b=temp;
}
if(a % b == 0)
{
return b;
}
else
{
return GDC(b,a % b);
}
}

<!--
展开
 我来答
chensunrise7
2013-11-25 · TA获得超过140个赞
知道答主
回答量:59
采纳率:0%
帮助的人:37.1万
展开全部
你是求出最大公约数,再用sum/它
其实你可以直接求最先公倍数的,两个数的最小公倍数的求法就用到了最大公约数
int gbs(int a,int b)
{
return (a*b)/(gys(a,b));
}
这样应该没有错了,你把这个题目的链接给我,我看看能不能过
更多追问追答
追问
题目上是要多个数啊~
追答
我不知道啊,你把题目的链接给我,我给你看看,或者把原来的题目给我看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Soucula
2018-11-23 · TA获得超过3091个赞
知道小有建树答主
回答量:744
采纳率:93%
帮助的人:72.3万
展开全部
你的题目是求最小公倍数,而你的方法返回的是最大公约数
int GDC(int a,int b)
{
if(b>a)
{
int temp=a;
a=b;
b=temp;
}
if(a % b == 0)
{
return b;
}
else
{
return GDC(b,a % b);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wukong6633159
2018-11-30 · 超过47用户采纳过TA的回答
知道答主
回答量:225
采纳率:40%
帮助的人:35.3万
展开全部
如果n特别大,大于50,无法处理,还有n等于1的时候好像也没有处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
854500070
2018-12-10 · TA获得超过119个赞
知道答主
回答量:110
采纳率:60%
帮助的人:31.7万
展开全部
你就没考虑过是因为数据一直乘导致中间值sum爆了int的范围吗,用long long试一下,或者套大数模板
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
regret4hxp2
2013-11-25 · TA获得超过682个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:248万
展开全部
输入是什么呢? 可以手工验证下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式