首页 > 电脑

C++求最小公倍数,这个源代码有什么问题吗

更新时间2018-04-20 04:46:49

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d;

cin>>a>>b;

for(c=1;d==0;c++)

{

if(a*c==b*c)

{

int c=b*c,d=1;

break;

}

}

cout<<c;

}


C最初表示乘几,D控制循环 如果可以麻烦源代码整齐一点,谢谢!

首先,你程序一眼看上去就是错的

for(c=1;d==0;c++)

你的d没有初值,它是一个随机数,你设为它等于0循环,根本不会执行的

其次,你的我县一中又定义了局部变量

int c=b*c,d=1;

它与外面的c/d无关的啊

另外,你的算法效率太低了

以下是我常用的你参考下

int GetDivisor( int m, int n) //辗转相除法求m/n的公约数
{
int r;
   while (n)
   {
                 r=m % n;
           m=n;
                 n=r;
         }
return m;
}
int GetMultiple(int m,int n) //最小公倍数
{
 return m*n/GetDivisor(m,n);
}

相关标签:源代码

上一篇:tekla2018的环境如何应用到tekla2017中

下一篇:这是我VS2012链接数据库出现的问题:求解决