找了半天的问题,找到了,但不理解为什么
查看原帖
找了半天的问题,找到了,但不理解为什么
605092
Deepcity楼主2021/11/25 22:27
#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设置为全局变量为什么就会造成部分结果出错,有误差。

2021/11/25 22:27
加载中...