实现sqrt函数功能,之前也是常见的面试题,本文两种解法,二分法,牛顿迭代法
2017-09-21 12:46
323 查看
1、二分法解法,迭代次数太多了,跑半天就没有放结果出来了。
2、牛顿迭代法,就是去逼近,数学知识自己去看。
#include <stdio.h>
#include <math.h>
float eps = 1e-6;
float sqrtByNewton(float x)
{
float val=x;//初始值
float last;
do
{
last = val;
val =(val + x/val) / 2;
}while(fabsf(val-last) > eps);
return val;
}
int main() {
printf("%f", sqrtByNewton(3.0));
return 0;
}
#include <stdio.h> #include <math.h> float eps = 1e-6; int sqrt(float n) { float mid, up, low, last; low = 0; up = up < 1 ? 1 : n; mid = (low + up)/2; do { if (mid * mid > n) { up = mid; } else { low = mid; } } while(fabsf(mid - last) > eps); return mid; } int main() { printf("%f", sqrt(3.0)); return 0; }
2、牛顿迭代法,就是去逼近,数学知识自己去看。
#include <stdio.h>
#include <math.h>
float eps = 1e-6;
float sqrtByNewton(float x)
{
float val=x;//初始值
float last;
do
{
last = val;
val =(val + x/val) / 2;
}while(fabsf(val-last) > eps);
return val;
}
int main() {
printf("%f", sqrtByNewton(3.0));
return 0;
}
相关文章推荐
- 【面向对象程序设计常见面试题】如何定义和实现一个类的成员函数为回调函数?
- 面试题7:用两个栈实现队列,队列的声明如下,请实现它的两个函数appendTail和deleteHead, 分别完成在队列尾部插入结点和在队列头部删除节点的功能。
- sqrt函数实现--牛顿迭代法(重点)
- 10.6 分别用字符数组和字符指针作函数参数两种方法编程实现在字符串每个字符间插入一个空格的功能
- C++常见面试题:虚函数实现原理
- C++常见面试题:虚函数实现原理
- sqrt的实现-牛顿迭代法和二分法对比
- 面试常见题之虚函数及底层的实现
- C++中虚函数功能的实现机制
- 用函数实现strcat和strncat的功能
- sqrt函数的实现
- 常见的C#实现导出到Excel 功能
- 自定义函数分块实现功能
- sql实现oracle分析函数功能 over partition by
- linux 调用系统函数来实现 ATM 自动取款机功能 (进程间通信)
- c++面试题2:虚函数是如何实现的?
- Python实现自定义函数的5种常见形式分析
- 计科答疑_牛顿迭代法求函数解_二分法求函数解_输出以下图形
- 利用PHP绘图函数实现简单验证码功能的方法
- 【C语言】【面试题】【笔试题】.字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。