题目描述
查看题目信息
使用Euclid算法计算a,b的最大公约数,并统计递归次数(即gcd函数的执行次数)。
Euclid算法:gcd(a,b)=gcd(b,a%b)
输入格式
一行2个整数a,b(0<a,b<=100000)
输出格式
gcd(a,b)以及递归函数被调用的次数,空格隔开
样例输入
10 1
样例输出
1 2
样例输入
99 78
样例输出
3 6
样例输入
2 3
样例输出
1 4
老样子
废话不多说
直接上代码
#include<bits/stdc++.h>
using namespace std;
int ans=1;
int gcd(int x,int y)
{
ans++;
if(x%y==0)
{
return y;
}
else
{
return gcd(y,x%y);
}
}
int main()
{
int m,n;
cin>>m>>n;
cout<<gcd(m,n)<<" ";
cout<<ans;
return 0;
}