C ++アルゴリズムバビロン

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();//忽略
	}

}

レンダリング:
ここに画像を挿入説明

おすすめ

転載: blog.csdn.net/weixin_44567289/article/details/89916442