您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> 关于欧几里得算法的代码,求解释

关于欧几里得算法的代码,求解释

来源:网络整理     时间:2016/7/15 6:35:28     关键词:

关于网友提出的“ 关于欧几里得算法的代码,求解释”问题疑问,本网通过在网上对“ 关于欧几里得算法的代码,求解释”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 关于欧几里得算法的代码,求解释
描述:

在网上看到的,应用欧几里得算法求最大公约数,没看懂,求解释
递归版本:
   int Euclid(int a,int b)
   {
while(a=a%b)a^=b^=a^=b;
return b;
    }
   迭代版本:
   int Euclid(int a,int b)
   {
while(a=a%b)a^=b^=a^=b;
return b;
    }


解决方案1:

谁写的代码,好像是故意让初学者读不懂,下面是改写过的与楼主等价的代码,顺便说一下,这个代码是循环结构而不是递归。


int Euclid(int a,int b)
{
  while (1)
  {
    a= a % b;
    if (a==0)
break;
    //以下3条语句的功能是交换a,b的值,等价于{int tmp; tmp=a; a=b; b=tmp;}
    a^=b;
    b^=a;
    a^=b;
  }
  return b;
}
解决方案2:

http://www.iflym.com/index.php/datastructure/201204240002.html
证明。自己去看下吧。


以上介绍了“ 关于欧几里得算法的代码,求解释”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2660728.html

相关图片

相关文章