最大公约数

求两数的最大公约数,可采用欧几里得的方法:只要两数不相等,就反复用大数减小数,直到相等为止,此相等的数就是两数的最大公约数。

方法一:

 1 #include<iostream>
 2 #include<fstream>
 3 using namespace std; //声明gcd函数,该函数用来计算两数的最大公约数
 4 int gcd(int,int);
 5 int main()
 6 {
 7     int x,y;
 8     while(cin>>x>>y)
 9     {
10         cout<<gcd(x,y)<<endl;
11     }
12     return 0;
13 }
14 int gcd(int x,int y)
15 {
16     while(x!=y)
17     {
18         if(x>y)x=x-y;
19         else y=y-x;
20     }
21     return x;
22 }

方法二:

1 #include<bits/stdc++.h>//表示包括编程中经常用到的头文件(有c和c++)

2 using namespace std;

3 typedef int i; //typedef用来为复杂的声明定义简单的别名,其中的i表示int(如定义longlong型:typedef long long ll;)

4 i gcd(i x,i y)

5 {

6 return y==0?x:gcd(y,x%y); //若y=0,则输出x,若不为零,则结合第6到11行进行gcd(y,x%y)中的运算,运用的是辗转相除法

7 }

8 i min(i x,i y)

9 {

10 return x<y?x:y; //若x<y,则输出x,否则输出y

11 }

12 int main()

13 {

14 i a,b;

15 cin>>a>>b;

16 i bns=0;

17 bns=gcd(a,b);

18 cout<<bns<<endl;

19 }

 

posted @ 2017-07-03 17:28  糖小俊  阅读(301)  评论(0)    收藏  举报