欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[模板题]数的三次方根

程序员文章站 2024-03-03 18:15:46
...

来源: 模板题,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;
}
相关标签: 模板题