我正在尝试使用以下伪代码编写名为double my_cbrt_1(double n)
的多维数据集根函数:
x = 1
repeat 10 times: x = (2x + n / x2) / 3
return x
然后写一个main,它打印n,cbrt(n)和my_cbrt_1(n)n = 3.14159乘以10为k次幂,k = -100,-10,-1,0,1,10,使用这个C ++ 11代码(仅适用于linux2):
for(auto k : {-100, -10, -1, 0, 1, 10, 100}){
n = 3.14159 * pow(10.0, k);
//cout goes here
}
我在开始这方面遇到了麻烦。如果有人能帮助我那将是伟大的!
答案 0 :(得分:2)
首先,您应该计算一次单个数字的立方根,然后您可以将相同的函数用于新数字
简单地实现您获得的功能
double my_cbrt_1(double n)
{
double x = 1.0;
for(int i=0; i<10; i++)
{
x = (2.0*x + n / (x*x)) / 3.0;
}
return x;
}