在计算机中,非负数x的平方根可以通过迭代公式求得,迭代公式如下: 请自定义一个递归函数实现上述迭代公式。递归函数的契约如下: double f( int n, double x ); //递归函数接口(契约) 在主函数中调用递归函数,n给定10,x从键盘输入,输出x的平方根。
时间: 2024-05-08 07:17:54 浏览: 59
已知平方根迭代公式,设x=a/2。编写程序输入a值计算其平方根。迭代的结束条件是x n+1-xn<10-5
以下是递归函数实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
double f(int n, double x) {
if (n == 0) { // 递归结束条件
return x / 2.0;
} else {
return (f(n-1, x) + x / f(n-1, x)) / 2.0; // 递归公式
}
}
int main() {
double x;
cin >> x;
cout << f(10, x) << endl;
return 0;
}
```
该递归函数的思路是,如果n为0,则返回x/2.0作为最终结果;否则,根据迭代公式,将f(n-1, x)和x/f(n-1, x)的平均值作为结果返回。
在主函数中,先读入x的值,然后调用递归函数f(10, x)计算x的平方根并输出。
阅读全文