搜索
查看: 708|回复: 8
打印 上一主题 下一主题

求任意2个数的最大公约数哪里错了,能运行但是结果错的求指教

[复制链接]
跳转到指定楼层
楼主
发表于 2014-4-24 16:30:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10啊哈币
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);


沙发
发表于 2014-4-24 16:51:59 | 只看该作者
i=a&b;

我没见过这样算gcd的,你确定不是
  1. i = a % b;
复制代码
?
板凳
 楼主| 发表于 2014-4-24 17:14:46 | 只看该作者
rosynirvana 发表于 2014-4-24 16:51
i=a&b;

我没见过这样算gcd的,你确定不是  ?

辗转相除法
地板
 楼主| 发表于 2014-4-24 17:16:59 | 只看该作者
rosynirvana 发表于 2014-4-24 16:51
i=a&b;

我没见过这样算gcd的,你确定不是  ?

改了。还是结果不对
5#
发表于 2014-4-24 17:28:32 | 只看该作者
xiaoc 发表于 2014-4-24 17:16
改了。还是结果不对

a % b != 0不能作为终止条件
例如a = 10, b = 2
6#
发表于 2014-4-24 17:39:34 | 只看该作者
本帖最后由 李掌柜 于 2014-4-24 17:41 编辑

试试这个~~
  1. #include<stdio.h>
  2. int main(void)
  3. {
  4.         int i,a,b,c;
  5.         scanf("%d%d",&a,&b);
  6.         c=a%b;
  7.         while(c!=0)
  8.         {
  9.                 a=b;
  10.                 b=c;
  11.                 c=a%b;
  12.         }
  13.         printf("%d\n",b);
  14.        
  15.         return 0;
  16. }
复制代码


7#
发表于 2014-4-27 19:41:57 | 只看该作者
a % b != 0是赋值不是判断a % b != =0才对嘛
8#
发表于 2014-4-27 19:42:00 | 只看该作者
a % b != 0是赋值不是判断a % b != =0才对嘛
9#
发表于 2014-4-27 19:42:59 | 只看该作者
看错了,不好意思{:soso_e162:},你对的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表