1.求解立方根之二分法
C++保留小数不是很方便,可以直接在牛客编译器上添加 C语言头文件;
据说:
注意:保留0位小数的时候,只要小数点后第一位>=5,就可以进位,但是保留1位或者2位等等,保留小数的后一位要>5才可以进位,否则就舍去。
参考
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
double getCubeRoot(double input)
{
double ans = 0;
if(input ==0)
return 0;
double left = 0,right = input,pre;
for(double i=right;i>0;)
{
if(i*i*i == input)
{
return i;
}else if(i*i*i>input)
{
right = i;
i = (left + right)/2;
}else{
left = i;
i = (left + right)/2;
}
if(right - left <=0.05)
return i;
}
}
int main()
{
double a;
cin>>a;
printf("%.1f",getCubeRoot(a));
}