【发布时间】:2011-03-03 04:45:43
【问题描述】:
我的 LCM 程序的结果有误。
我先找到数字的gcd,然后用gcd除以乘积。
int gcd(int x, int y)
{
while(y != 0)
{
int save = y;
y = x % y;
x = save;
}
return y;
}
int lcm(int x, int y)
{
int prod = x * y;
int Gcd = gcd(x,y);
int lcm = prod / Gcd;
return lcm;
}
非常感谢任何帮助。
【问题讨论】:
-
如果您已经测试过 gcd,您会发现它总是返回 0,而且原因很明显。一旦 gcd 正常工作,then 将是检查 lcm 是否正常工作的时候了。这指向了软件开发和调试的一般策略。此外,这段代码甚至无法编译的事实令人怀疑:您是如何从中得到错误结果的?
-
感谢吉姆的提示。该代码现在对我来说很好。
-
@user642371 以后,请发布您编译的实际代码。对 cmets 的回复应包含 @name,以便您回复的人收到警报。谢谢。
标签: c algorithm overflow greatest-common-divisor lcm