这道题比较容易,递归可以很快就做出来!不过要注意尽可能降低递归层数,否则容易爆栈。
下面是 AC code:
#include <iostream>
using namespace std;
typedef long long int ll;
ll fun(ll x,ll y);
int main()
{
ll x,y;
cin>>x>>y;
cout<<fun(x,y)<<endl;
return 0;
}
ll fun(ll x,ll y)
{
if(x==y)
{
return 4*x;
}
else if(x==0)
{
return 0;
}
if(x<y)
{
swap(x,y);
}
return 4*y*(x/y)+fun(x%y,y);
}