[模板题]数的三次方根 原创

来源: 模板题,AcWing
算法标签: 二分

给定一个浮点数n,求它的三次方根。

输入格式

共一行,包含一个浮点数n。

输出格式

共一行,包含一个浮点数,表示问题的解。

注意,结果保留6位小数。

数据范围

−10000≤n≤10000
输入样例:
1000.00

输出样例:

10.000000

思路

这道题本身即在指定范围中,一个数的三次方满足条件即成立。
我们可以用二分来解决,当mid^3>n,即r=mid,else即可。

实数二分相对整数二分更加简便。
这道题我们只需要明确精度的要求合法输出即可。
二分是一种思想的概念在这道题目当中更为明显。

C++ 代码
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
    double n;
    cin>>n;

    double l= -10000,r=10000;//边界
    while(r-l>1e-8)//对精度要求高,于是精确多2位
        {
            double mid=(l+r)/2;
            if(mid*mid*mid>=n)r=mid;//如果三次方在右边,即往左走
            else l=mid;
        }
    printf("%lf",r);
    //printf("%6lf",r);
    //cout<<fixed<<setprecision(6)<<r;//以上三种方式都可以
    
    return 0;
}
posted @ 2024-05-24 20:40  俺叫西西弗斯  阅读(0)  评论(0)    收藏  举报  来源