【发布时间】:2016-04-30 13:14:37
【问题描述】:
我正在编写的程序应该找到给定双精度的根。
条件是:不允许使用 while 和 for 循环。不允许任何类型的循环。
我们的教授说禁止使用stdlib函数sqrt()。
我开始编写代码,但仍然无法正常工作。希望任何人都可以提供帮助。
#include <cstdlib>
#include <iostream>
using namespace std;
double mysqrt(double a, double b, double c);
int main(int argc, char** argv) {
double dBegin{0};
double dOldroot{0};
double dNewroot{0};
double a{0};1
cin >> dBegin;
dOldroot = dBegin;
mysqrt(a, dOldroot, dNewroot);
cout << dNewroot;
return 0;
}
double mysqrt(double a, double b, double c) {
c = (b + (a / b)) / 2.0;
if (a != 8) {
c = mysqrt(a++, b, c);
}
return c;
}
【问题讨论】:
-
"禁止使用stdlib函数sqrt" 那么使用
sqrtl()怎么样? -
我们可以用递归代替while或for循环吗?