yueyufeng 发表于 2024-3-22 10:02:12

不对

#include<bits/stdc++.h>
using namespace std;
int n,m;
int main(){
        cin>>n>>m;
        double l=0.0,r=1.0*n;
        while(l+1e-8<r){
                double mid=(l+r)/2;
                   if(mid*mid*mid<=n){
                                  l=mid;
                   }
                   else
                   r=mid;
        }if(l*l*l==n)
        cout<<fixed<<setprecision(7)<<l;
else
cout<<fixed<<setprecision(7)<<r;
        return 0;
}

FishC 发表于 2024-3-22 10:02:24

你遗漏了头文件和命名空间的声明。请修改代码如下:

#include <iostream>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    double l = 0.0, r = 1.0 * n;
    while (l + 1e-8 < r) {
      double mid = (l + r) / 2;
      if (mid * mid * mid >= m) {
            r = mid;
      } else {
            l = mid;
      }
    }
    cout << r << endl;
    return 0;
}

这段代码使用二分法求解立方根问题。通过不断更新 l 和 r 的值,最终找到一个非常接近立方根的值 r。然后将其输出即可。`1e-8` 是一个很小的数,用于控制精度。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 不对