#include <bits/stdc++.h>
using namespace std;
double dfs(double a,double b,int k)
{
double ans=0x3f3f3f3f;
if(k==1)return max(a,b)/min(a,b);
for(int i=1;i<k;i++)
{
double max1=max(dfs(a/k*i,b,i),dfs(a/k*(k-i),b,k-i));
double max2=max(dfs(a,b/k*i,i),dfs(a,b/k*(k-i),k-i));
ans=min(ans,min(max1,max2));
}
return ans;
}
int main()
{
double X,Y,N;
cin>>X>>Y>>N;
cout<<fixed<<setprecision(6)<<dfs(X,Y,N);
return 0;
}
这里把ans设置为全局变量为什么就会造成部分结果出错,有误差。