算法--二分查找--求平方根(循环法/递归法)
生活随笔
收集整理的這篇文章主要介紹了
算法--二分查找--求平方根(循环法/递归法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
二分查找:
題目: 求一個數的平方根
-
例如:二分法求根號5
a:折半: 5/2=2.5
b:平方校驗: 2.5*2.5=6.25>5,并且得到當前上限2.5
c:再次向下折半:2.5/2=1.25
d:平方校驗:1.25*1.25=1.5625<5,得到當前下限1.25
e:再次折半:2.5-(2.5-1.25)/2=1.875
f:平方校驗:1.875*1.875=3.515625<5,得到當前下限1.875
循環求解:
#include<iostream> double rootbinarysearch(double num) {if(num == 1)return 1;double lower = 1, upper = num, curValue;if(lower > upper)std::swap(lower,upper);while(upper-lower > 0.00000001){curValue = lower+(upper-lower)/2;if(curValue*curValue < num)lower = curValue;elseupper = curValue;}return curValue; }int main() {double x;std::cin >> x;std::cout << x << "的平方根是 " << rootbinarysearch(x);return 0; }
遞歸求解:
總結
以上是生活随笔為你收集整理的算法--二分查找--求平方根(循环法/递归法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 远程mapduce_java
- 下一篇: oss图片跨域问题_图片存储解决方案-阿