[模板题]数的三次方根 原创
来源: 模板题,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;
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号