详细解析C语言中的开方实现

关于C语言中的开方计算,首先想到的当然是sqrt()函数,让我们先来回顾一下它的基本用法:

头文件:#include

sqrt() 用来求给定值的平方根,其原型为:

double sqrt(double x);

参数

x 为要计算平方根的值。

如果 x < 0,将会导致 domain error 错误,并把全局变量 errno 的值为设置为 EDOM。

返回值

返回 x 平方根。

注意,使用 GCC 编译时请加入-lm。

实例计算200 的平方根值。

#include

main(){

double root;

root = sqrt(200);

printf("answer is %f\n", root);

}

输出结果:

answer is 14.142136

题目求整数N的开方,精度在0.001

二分法若N大于1,则从[1, N]开始,low = 1, high = N, mid = low + (high - low) >> 1开始进行数值逼近

若N小于1,则从[N, 1]开始,low = 0, high = N, mid = low + (high - low) >> 1开始进行数值逼近

ac代码

/**

* 创新工厂2014年校招算法题目,求整数N的开方,精度为0.001

*/

#include

#include

#include

#define ACCURACY 0.001

double newSqrt(double n)

{

double low, high, mid, tmp;

// 获取上下界

if (n > 1) {

low = 1;

high = n;

} else {

low = n;

high = 1;

}

// 二分法求开方

while (low <= high) {

mid = (low + high) / 2.000;

tmp = mid * mid;

if (tmp - n <= ACCURACY && tmp -n >= ACCURACY * -1) {

return mid;

} else if (tmp > n) {

high = mid;

} else {

low = mid;

}

}

return -1.000;

}

int main(void)

{

double n, res;

while (scanf("%lf", &n) != EOF) {

res = newSqrt(n);

printf("%lf\n", res);

}

return 0;

}

相关阅读:

JS选取DOM元素的简单方法

解析linq to xml操作XML的示例分析

C# TreeView无限目录树实现方法

设置div的z-index属性让div在另外一个div之上

checkbox 选中一个另一个checkbox也会选中的实现代码

PHP静态调用非静态方法的应用分析

SQLite数据库管理系统-我所认识的数据库引擎

一些比较实用的 Android adb 命令分享

详解C语言中freopen()函数和fclose()函数的用法

HTML+CSS+JavaScript通过嵌套ul li实现简单的二级菜单

使用PHP备份MySQL和网站发送到邮箱实例代码

详细对比C语言中的chmod()函数和fchmod()函数

简单谈谈Javascript中类型的判断

VisualStudio 使用Visual Leak Detector检查内存泄漏

c语言中开方,C++_详细解析C语言中的开方实现,关于C语言中的开方计算,首先 - phpStudy...相关推荐

  1. python中数据类型大小_详细解析Python中的变量的数据类型

    变量是只不过保留的内存位置用来存储值.这意味着,当创建一个变量,那么它在内存中保留一些空间. 根据一个变量的数据类型,解释器分配内存,并决定如何可以被存储在所保留的内存中.因此,通过分配不同的数据类型 ...

  2. python中变量类型在程序中可以改变_详细解析Python当中的数据类型和变量

    数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...

  3. 终端不能联网_详细解析物联网是什么?

    原标题:详细解析物联网是什么? 物联网的英文是Internet of Things,缩写为IoT.这里的"物"指的是我身边一切能与网络联通的物品.例如你带的手表.你骑的共享单车.马 ...

  4. 搜索引擎下拉食云速捷详细_详细解析关键词与搜索引擎之间的霸屏关系

    详细解析关键词与搜索引擎之间的霸屏关系 日期:2020-08-17  发布人:tpcqzr 浏览量:22527 下拉词 操作>> 近来众多人聊到啥子是查寻引擎的霸屏,断章取义便是要害词强占 ...

  5. java 内存排序_详细解析Java内存,处理器重排序,编译器重排序以及它对线程的影响...

    欢迎大家搜索"小猴子的技术笔记"关注我的公众号,有问题可以及时和我交流. 我们在编写程序的时候有一个编写代码的顺序,那么计算机执行的时候就是按照我们编写代码的顺序来执行的吗?答案是 ...

  6. c语言制作java虚拟机_【C/C+】虚拟机实现:用C语言来写Java虚拟机

    前言:本篇文章除了能够让你了解到虚拟机的工作原理外,还可以让你了解到较低级别的编程过程. 由于我喜欢在较低级别(Low-level)的应用中(编译器,解释器,解析器,虚拟机等等)工作,所以我觉得写一篇 ...

  7. python语言中运算符号_详细介绍Python语言中的按位运算符

    <从问题到程序:用Python学编程和计算>--2.11 补充材料 本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第2章,第2.11节,作者:裘宗燕 ...

  8. python 获取json中最大值_详细解析 Python 爬取 bilibili 的视频、弹幕以及封面

    本文使用 Zhihu On VSCode 创作并发布 环境 用到的 Python 库: Python 3.7 requests moviepy json re os 浏览器:Firefox/ 83.0 ...

  9. c语言数据结构kmp中next计算,数据结构——关于KMP算法中next函数的详细解析

    以前看到数据结构中字符串的模式匹配时,花了半天的时间,才把KMP算法中的next函数整明白了,结果过了几天在看到这时,只记得next[j+1]=next[j]+1,但是有时候能套公式正确算出,有时候就 ...

  10. 如何使用python编程、字典中的get是什么_详细解析python字典get()实例教程

    对于程序员而言,了解更多的算法,对自己的程序完善是非常有意义的,关于Get方法有小伙伴了解是如何使用吗?不了解的小编已为大家整理,一起来看下吧~ get()函数简介 get()是查找并返回字典中的某个 ...

最新文章

  1. 14/10/校内测试{天天考,丧心病狂}
  2. JBOSS 端口修改说明
  3. android中变量作用域,在 Android 和 Hilt 中限定作用域
  4. c语言autoi函数如何使用,C++的auto声明、memset函数
  5. 特征经验分享以及管理文件,远程运行的小技巧
  6. 作为程序员,起码要知道的 Python 修饰器!
  7. VR一体机行业调研:用户活跃未达预期,广告收益前景堪忧
  8. 代码chaid_R或Python中的CHAID决策树
  9. 组合数字c语言do while,C语言初学do while语句(对输入数字字符,特殊符号等,进行统计).docx...
  10. Java web中不同浏览器间导出Excel文件名称乱码问题解决方案
  11. ROG幻14 AMD R7-4800H VM16安装macOS Catalina 10.15教程
  12. 【ACM】杭电1070:Milk
  13. 高斯混合模型及python代码
  14. 神坛上的插画师真的高薪且自由吗?
  15. 2022年最新常用的浏览器排行榜单
  16. python3数据库框架_python3大框架简介 小收藏
  17. JDBC学习笔记(SQL语句的执行)
  18. Oracle 中的序列
  19. 2019新版前端与移动开发学习路线图(视频+工具+书籍+资源)
  20. 什么是1080p、2k、4k?视频基础参数解释

热门文章

  1. 远程服务器窗口调大,远程桌面缩放
  2. 【转载】使用微博API接口获取数据
  3. hosts文件位置和修复hosts文件
  4. AE插件自动创建图层工具LayerGenerators使用教程
  5. Java实现拖动图片验证处理
  6. vb和python语言的区别大吗_vb语言为什么被淘汰
  7. Spark SVN + Eclipse 3.3 + Subversive Installation Guide
  8. VBS表白代码以及一些注意事项
  9. bootdo跳sign in页面
  10. bootdo 重命名 版本2.0 (适合所有springboot项目)