1207
程序员文章站
2022-06-23 18:38:01
...
1207:求最大公约数
【题目描述】
给定两个正整数,求它们的最大公约数。
【输入】
输入一行,包含两个正整数(<1,000,000,000)。
【输出】
输出一个正整数,即这两个正整数的最大公约数。
【输入样例】
6 9
【输出样例】
3
二、解题思路
采用辗转相除法。设有A,B两个数符合求取最大公约数,则 result = A % B,如果 result 不是最大公约数,则 A = B,B = result 循环求解,有最大公约数即结束程序。
#include <iostream>
using namespace std;
int f(int a,int b)
{
if(b==0)
{
return a;
}
return f(b,a%b); //辗转相除法
}
int main()
{
int a,b;
cin>>a>>b;
if(a>b)
{
cout<<f(a,b)<<endl;
}
else
{
cout<<f(b,a)<<endl;
}
return 0;
}
推荐阅读