C ++アルゴリズムバビロン
#include <iostream>
using namespace std;
void test2();//函数原型
void main() {
test2();
}
//用于计算数字n的平方根的巴比伦算法如下:
//a.先猜一个答案guess(可以将n / 2作为第一个答案)
//b.计算r = n / guess
//c.令guess = (guess + r) / 2
//d.如有必要返回第2步重复多次。步骤2和步骤3重复的次数越多,guess就越接近n的平方根。
//写一个程序,输入整数作为n的值,重复执行巴比伦算法,直到guess与前一个guess的误差在1%范围内,
//将答案作为一个double输出。
void test2() {
double n = 0.0f,r=0.0f,guess = 0.0f,y=0.01f;//声明需要用到的变量
cout << "请输入大于或等于零的数" << "\x0A";
cin >> n;//输入值
if (!cin.fail())//判断是否输入正确
{
if (n >= 0)//判断是否大于零
{
while (1) {
if (r <= 0)
{
guess = n / 2;//第一个答案
}
r = n / guess;
guess = (guess + r) / 2;
cout << (guess - r) << "\x0A";//过程
if ((guess - r) <= y && (guess - r) >= 0)
{
break;//满足条件退出
}
}
cout << "guess=" << guess << " r=" << r << "误差=" << (guess - r) << "\x0A";//结果
}
}
else
{
cin.clear();//清除
cin.sync();//重置
cin.ignore();//忽略
}
}
レンダリング: