求一个正数N的开方, 并且可以指定精度, 要求不能用库函数sqrt
方法一:如下所示,先求sqrt(N)的整数部分,再求小数点后1位,2位 ... ...
方法二:牛顿迭代法,根据公式 Ai+1 = (Ai+number/Ai)/2 ,其中Ai的初始值,即A1任取,如1,2,3 ...
// 求一个正数N的开方, 并且可以指定精度, 要求不能用库函数sqrt
#include
#include
double my_sqrt2(double number, int point)
{
double new_guess;
double last_guess;
if (number < ) {
printf("Cannot compute the square root of a negative number!\n");
return -;
}
printf("Method 2:\n");
new_guess = ;
do {
last_guess = new_guess;
new_guess = (last_guess + number/last_guess) / ;
printf("%.*lf\n", point, new_guess);
} while (new_guess != last_guess);
return new_guess;
}
double my_sqrt1(double n, int point)
{
if (n < ) {
printf("Cannot compute the square root of a negative number!\n");
return -;
}
int i,j;
for( i=; i-n
if( i*i-n > )
break;
double answer = i-;
double incr = 0.1;
for( j=; j<=point; j++) // 第j次循环,求得i的开方的小数部分的第j位
{
for( i=; i
{
answer += incr;
if( answer*answer-n > )
break;
}
answer -= incr;
incr /= ;
}
incr *= ;
printf("Method 1:\n");
printf("sqrt(%lf) is between %.*lf - %.*lf\n", n, point, answer, point, answer+incr);
return answer;
}
int main(void)
{
int point;
double n;
printf("请输入正整数N: ");
scanf("%lf",&n);
printf("请输入精确到小数点后的位数: ");
scanf("%d",&point);
my_sqrt1(n,point);
my_sqrt2(n,point);
return ;
}
转:一个Sqrt函数引发的血案
转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/1844725.html 源码下载地址:http://diducoder.com/sotr ...
[转载]求平方根sqrt()函数的底层算法效率问题
我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢? 虽然 ...
Sqrt函数高效实现
转自一个Sqrt函数引发的血案 我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来 ...
一个Sqrt函数引发的血案(转)
作者: 码农1946 来源: 博客园 发布时间: 2013-10-09 11:37 阅读: 4556 次 推荐: 41 原文链接 [收藏] 好吧,我承认我标题党了,不过既然你来了, ...
【转载】一个Sqrt函数引发的血案
转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/sotry-about-sqrt.html 源码下载地址:http://diducoder ...
一个Sqrt函数引发的血案
源码下载地址:http://diducoder.com/sotry-about-sqrt.html 好吧,我承认我标题党了,不过既然你来了,就认真看下去吧,保证你有收获. 我们平时经常会有一些数据运算 ...
sqrt函数实现(神奇的算法)
我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢? 虽然 ...
php sqrt()函数 语法
php sqrt()函数 语法 作用:sqrt()函数的作用是对参数进行求平方根 语法:sqrt(X) 参数: 参数 描述 X 进行求平方根的数字 说明:返回将参数X进行开平方后的结果江苏大理石平台 ...
PHP sqrt() 函数
实例 返回不同数的平方根: <?phpecho (sqrt(0) . "
");echo(sqrt(1) . "
"); ...
sqrt函数实现
感谢杨工,让我更加认识到自己技术薄弱,这道题源自于和杨工的非正式面试,当时根本没思路,甚至没和查找有丝毫的联系,看来做自己想做的还是要付出努力的.sqrt()即开平方运算,y=x*x,已知Y的情况下求 ...
随机推荐
mysql安装tcmalloc
TCMalloc(Thread-Caching Malloc)是google-perftools工具中的一个,与标准的glibc库的malloc相比,TCMalloc在内存的分配上效率和速度要高得多, ...
UVALive 3027 并查集
#include #include #include #include #i ...
C语言中static作用
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有 ...
github 或者gitlab 设置添加SSH
克隆项目二种方式: 1. 使用https url克隆, 复制https url 然后到 git clone https-url 2.使用 SSH url 克隆却需要在克隆之前先配置和添加好 SSH ...
Django中Q查询及Q()对象
问题 一般我们在Django程序中查询数据库操作都是在QuerySet里进行进行,例如下面代码: >>> q1 = Entry.objects.filter(headline__st ...
word2016怎么让目录索引显示在左边?
视图里面 勾选导航窗格即可 前提是你分级分好
Java如何检查一个线程停止或没有?
Java如何检查一个线程停止或没有? 解决方法 下面的示例演示如何使用 isAlive()方法检查一个线程是否停止. public class Main { public static void ma ...
我的SQL里哪个语句占用的CPU最多?
可以使用下面的语句来得到 SELECT SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1, ( (CASE qs.statement_end_off ...