1207:求最大公约数问题

一、题目描述
给定两个正整数,求它们的最大公约数。
输入
输入一行,包含两个正整数(<1,000,000,000)。
输出
输出一个正整数,即这两个正整数的最大公约数。
输入样例
6 9
输出样例
3
二、解题思路
采用辗转相除法。设有A,B两个数符合求取最大公约数,则 result = A % B,如果 result 不是最大公约数,则 A = B,B = result 循环求解,有最大公约数即结束程序。
三、参考程序
#include<bits/stdc++.h>
#define N 1000010
using namespace std;
int calculate(int a,int b)
{
if(b==0)
return a;
return calculate(b,a%b);
}
int main()
{
int a,b;
cin>>a>>b;
if(a>b)
cout<<calculate(a,b)<<endl;
else
cout<<calculate(b,a)<<endl;
return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44403431/article/details/85872021