您的位置:首页 > 其它

自己动手实现C标准库中sqrt()函数

2012-09-13 11:24 274 查看
今天在C和指针P63看到了这个计算公式,ai+1 = ( ai + number/ai ) / 2。之前也有在网上看到过,不过出处忘了,记得好像是关于组合数学还是数论里面的一个内容。

公式很简单,理论这个我就不懂了,还希望各位给指导一下。下面贴出自己的代码,作为记忆保留。

float my_sqrt(float number) {
float new_guess;
float last_guess;

if (number < 0) {
printf("Cannot compute the square root of a negative number!\n");
return -1;
}

new_guess = 1;
do {
last_guess = new_guess;
new_guess = (last_guess + number / last_guess) / 2;
printf("%.15e\n", new_guess);
} while (new_guess != last_guess);

return new_guess;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: