算法描述:

这种方法比较就远了,也可以从牛顿迭代法推导。

假设x^2=n ,给出n 要求x 的值。

1 从一个任意的值x开始(越靠近根越好)。

2 初始化y = 1.

3. 重复一下步骤直到求得近似值:

a) 取x和y的平均数为下一个近似的根

b) y = n/x

不管刚开始x,y的相差有多大,最终都会想中间靠拢的,最后 x*y = n。例如 n=50时

x=50   y=1

x=25.5   y=1.96078

x=13.7304   y=3.64156

x=8.68597   y=5.75641

x=7.22119   y=6.92407

x=7.07263   y=7.06951

代码实现:

/*Returns the square root of n. Note that the function */

float squareRoot(float n)

{

/*使用n作为初始化,其实还有待优化 */

float x = n;

float y = 1;

float e = 0.000001; /* e 确定精度 */

while(x - y > e)

{

x = (x + y)/2;

y = n/x;

}

return x;

}

int main()

{

int n = 50;

printf ("Square root of %d is %f", n, squareRoot(n));

getchar();

}

例子:

n = 4 /*n 被用作初始解 */

Initialize x = 4, y = 1

下一个近似解 x = (x + y)/2 (= 2.500000),

y = n/x (=1.600000)

下一个近似解 x = 2.050000,

y = 1.951220

下一个近似解 x = 2.000610,

y = 1.999390

下一个近似解 x = 2.000000,

y = 2.000000

停止: (x - y) > e .

如果我们可以确定n是完全平方数(解为整数),可以使用下面的方法。对于非完全平方数,程序 会进入死循环

unsigned int squareRoot(int n)

{

int x = n;

int y = 1;

while(x > y)

{

x = (x + y)/2;

y = n/x;

}

return x;

}

/* 测试*/

int main()

{

int n = 49;

printf (" root of %d is %d", n, squareRoot(n));

getchar();

}

参考:http://www.geeksforgeeks.org/square-root-of-a-perfect-square/

巴比伦算法求平方根c语言,巴比伦算法求平方根相关推荐

  1. c语言经典算法大全pdf,c语言经典算法100例pdf版.pdf

    c语言经典算法100例pdf版 C 语言经典算法 100 例 C 语言编程经典 100 例 A:[程序1] 题目:有1.2.3.4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程 ...

  2. 迭代公式求平方根c语言程序设计,迭代法求平方根C语言实验报告

    与<迭代法求平方根C语言实验报告>相关的范文 西安交通大学实验报告 课程_ c++ __ 实验名称_迭代公式求平方根_ 第1页 共2页 系 别__ 土木工程 ____ 实 验 日 期 20 ...

  3. c语言二级常考算法大全,二级C语言 常用算法.doc

    二级C语言 常用算法 C语言常用算法 一.计数.求和.求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值.终值或结束条件,更要注意用来表示计数.和.阶乘的变量的初值. 例:用随机 ...

  4. 算法导论中C语言代码,算法导论-学习笔记与进度

    算法导论 阅读进度 第一部分 基础知识 第一章 计算中算法的角色 Done 1.1 算法 输入与输出 算法可以解决哪些问题 数据结构 技术 一些比较难的问题 1.2 作为一种技术的算法 效率 算法和其 ...

  5. c语言编程实现表达式求值,c语言实现表达式求值的方法

    c语言实现表达式求值的方法 发布时间:2020-06-22 16:45:46 来源:亿速云 阅读:82 作者:Leah 这期内容当中小编将会给大家带来有关c语言实现表达式求值的方法,以专业的角度为大家 ...

  6. c语言小学生算法,急求:C语言小学生算法练习软件实现的任务:面向小学生,随机选择两个整数进行加、减、乘、除,要求学生解答。设计内容:1、电...

    共回答了16个问题采纳率:100% #include #include #include #include int sumScore = 0; int corrN = 0;//全局变量 //总的分数 ...

  7. c语言算法课件,《C语言常见算法》PPT课件.ppt

    一 素数.随机数.最大值和最小值 (1) 判断一个数是否为素数 素数:只能被1和它本身整除的数. 要判断一个正整数m是不是素数,需 要用大于1且小于它本身的正整数去除它 ,只要它能被其中的一个数整除, ...

  8. 贪心算法设计作业调度c语言,贪心算法 - 数据结构与算法教程 - C语言网

    1.简介 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法不是对所有问题都能得到整体最优 ...

  9. 贪心算法 0-1背包c语言,贪心算法0-1背包问题(算法实验代码).pdf

    . 实验三. 0-1 背包问题(贪心算法) 实验代码: #include int max(int a,int b) { if(a>b) return a; else return b; } vo ...

最新文章

  1. 写一手好 SQL 很有必要
  2. Css网格布局-Grid布局
  3. ASP.NET Core中间件初始化探究
  4. 基于 CoreAudio 的音频编解码(一):音频解码
  5. 晨哥真有料丨你太容易被得到了!
  6. CSS中meta标签的viewport
  7. Ruby on rails Mac开发 入门笔记(一)
  8. python简述程序的ipo结构_python程序流程图
  9. 清理浏览器html缓存图片吗,在JSP或Javascript中清除浏览器缓存中的图像
  10. C++ 基础练习 圆的面积
  11. 麒麟子Javascript游戏编程零基础教程大纲
  12. StaMPS结合TRIAN 做GACOS大气校正
  13. python如何取消换行_python怎么取消换行
  14. (转) 在C#中使用WIA获取扫描仪数据(三、利用Filter处理图片)
  15. 【Linux】mysql命令行查看表结构,字段等信息
  16. mysql导出所有表字段备注
  17. 我国计算机的最新进展,我国计算机最新进展
  18. 高数焦虑?这个假期,暗暗发力,2023年“兔”飞猛进
  19. AI换脸(支持视频换脸,支持cpu、低算力)【附代码】
  20. 重视网络安全,华为红客联盟最新开源分享“黑客零基础入门学习路线+笔记”堪称黑客入门天花板教程

热门文章

  1. ASP.NET Core 通过 Microsoft.DotNet.Watcher.Tools 实现热部署
  2. .NET Core开发日志——从ASP.NET Core Module到KestrelServer
  3. TypeScript 2.8引入条件类型
  4. 微软高管解读财报:努力创新云基础架构
  5. 基于Bootstrap 3.x的免费高级管理控制面板主题:AdminLTE
  6. C#对window 硬件类操作,ManagementObjectSearcher
  7. git stash参数介绍
  8. [转]new Thread的弊端及Java四种线程池的使用
  9. 作为一个甘肃天水人,我对罐罐茶有一种特殊的情怀
  10. C#中泛型在Class上的实现