啊哈磊_编程从这里起步
标题:
求任意2个数的最大公约数哪里错了,能运行但是结果错的求指教
[打印本页]
作者:
xiaoc
时间:
2014-4-24 16:30
标题:
求任意2个数的最大公约数哪里错了,能运行但是结果错的求指教
int main()
{
int i,a,b,c;
scanf("%d%d",&a,&b);
if(a<b)
{c=b;
b=a;
a=c;
}
while(a%b!=0)
{i=a&b;
a=b;
b=i;
}
printf("%d",a);
作者:
rosynirvana
时间:
2014-4-24 16:51
i=a&b;
我没见过这样算gcd的,你确定不是
i = a % b;
复制代码
?
作者:
xiaoc
时间:
2014-4-24 17:14
rosynirvana 发表于 2014-4-24 16:51
i=a&b;
我没见过这样算gcd的,你确定不是 ?
辗转相除法
作者:
xiaoc
时间:
2014-4-24 17:16
rosynirvana 发表于 2014-4-24 16:51
i=a&b;
我没见过这样算gcd的,你确定不是 ?
改了。还是结果不对
作者:
rosynirvana
时间:
2014-4-24 17:28
xiaoc 发表于 2014-4-24 17:16
改了。还是结果不对
a % b != 0不能作为终止条件
例如a = 10, b = 2
作者:
李掌柜
时间:
2014-4-24 17:39
本帖最后由 李掌柜 于 2014-4-24 17:41 编辑
试试这个~~
#include<stdio.h>
int main(void)
{
int i,a,b,c;
scanf("%d%d",&a,&b);
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("%d\n",b);
return 0;
}
复制代码
作者:
yangchengjun
时间:
2014-4-27 19:41
a % b != 0是赋值不是判断a % b != =0才对嘛
作者:
yangchengjun
时间:
2014-4-27 19:42
a % b != 0是赋值不是判断a % b != =0才对嘛
作者:
yangchengjun
时间:
2014-4-27 19:42
看错了,不好意思{:soso_e162:},你对的
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2