算法--欧几里得

这是一个好东西.

它是用来求两个数的最大公因数.

思路:辗转相除法.每次a % b,如果余数等于1,则余数的值给b.

                                            如果大于1,那么继续将除数%余数.

代码如下:

 1 //欧几里得算法 
 2 #include <iostream>
 3 using namespace std;
 4 int gcd(int a,int b){
 5     return b==0?a:gcd(b,a%b);
 6 }
 7 int main(){
 8     int a,b;
 9     while(cin>>a>>b){
10         cout<<gcd(a,b)<<endl;
11     }
12     return 0;
13 }

 

posted @ 2017-08-09 22:35  HATU  阅读(201)  评论(0编辑  收藏  举报