不调用math.h如何求平方根?

来源:百度知道 编辑:UC知道 时间:2024/06/02 17:47:38
我在做一个实验,由于环境的内存有限,不能调用C语言的库函数,请问如何实现求平方根的算法?

一楼是费话。
用泰勒公式的人说话完全不经过大脑,0.5次方取n阶导后还是要开方,没用。
二楼方法可取。

事实上,开方比较简单,有三种方法:
1模拟笔算开方,不会笔算开方的自己上网查,开方是可以精确算的。
2用二分法逼近。从0到那个数,类似二楼,但二分法收敛更快。
3由于开方函数是凸函数,从0开始代入该点导数函数求解,再代入该点导数函数再求解,一直做,可得近似值,这个方法和二分法收敛得一样快。

你自己喜欢哪个用哪个。

级数展开

http://www.cnblogs.com/sundeepblue/archive/2007/07/31/837532.html

泰勒公式展开!
f(x)=f(0)+f′(0)x+(1/2!)f′′(0)*x^2+....+(1/n!)*f(0)的n阶导数*x的n次方+。。。
取到一定精度就行了
不好输入,谅解!

计算整型平方根程序如下,在参考书的基础上改动,win-tc和Dev-c++下已调试通过:
/* 计算整型平方根 */
# include <stdio.h>
# include <stdlib.h>
# include <conio.h>

int issqrt(int a) /* 计算整型平方根 */
{
register int odd,old,first_sqrt;
odd=1;
old=a;
while(a>=0) /* 求2倍的近似平方根 */
{ a=a-odd;
odd=odd+2;
}
first_sqrt=odd>>1; /* 除2得近似平方根 */
if