题解 | #求解立方根#

求解立方根

http://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca

c++简单题解:
使用二分法一步一步判断,

#include<iostream>
using namespace std;

int main()
{
    float n;
    cin >> n;
    int mark = 1; //标记正负数
    if(n<0)  mark=-1;
    n*=mark;
    int a[(int)n+2];
    a[0]=0;
    double f=0.0;//结果
    for(int i=0; ; i++)
    {
        a[i]=i*i*i;
        if(a[i]==n)
        {
            f=a[i];
            break;
        }
        else if(a[i]>n&&a[i-1]<n)
        {
            float tmp = i-0.5;
            float t=tmp*tmp*tmp;
            if(t>n)
                tmp=i-1;
            else if(t==n)
            {
                f=tmp; 
                break;
            }
            t=tmp*tmp*tmp;
            while(t<n)
            {
                tmp+=0.1;
                t=tmp*tmp*tmp;
            }
            t=tmp-0.05;
            if(t*t*t>n)
               f=tmp-0.1;
            else
               f=tmp;
            break;
        }
    }
    cout << f*mark << endl;
    return 0;
}
全部评论

相关推荐

阿武同学:基本信息保留前面三行,其他的可以全部删掉,邮箱最重要的你没写,主修课程精简到8个以内,实习里面2/3/4都是水内容的,非要写的话建议两到三句话,项目经历排版优化下,自我评价缩到三行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务