要求实现一个递归函数,能够高效求得两个正整数a,b(1<=a,b<109)的最大公约数。
函数接口定义:
int gcd(int a, int b);
其中 a
、b
是用户传入的参数,存放待求最大公约数的两个正整数。
裁判测试程序样例:
#include<iostream>
using namespace std;
int gcd(int a, int b); //求a、b的最大公约数
//输入若干对整数,输出它们的最大公约数,处理到文件尾
int main() {
int a,b;
while(cin>>a>>b) {
cout<<gcd(a, b)<<endl;
}
return 0;
}
输入样例:
45000 50000
15 20
输出样例:
5000
5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
int gcd(int a, int b)
{
if(b == 0)
return a;
else
return gcd(b, a % b);
}
此处为C语言