c++用连分数求根号2
时间: 2024-02-25 21:54:23 浏览: 63
根号2可以表示为无限连分数:1 + 1/(2 + 1/(2 + 1/(2 + ...)))。如果要用C++语言计算这个无限连分数的值,可以使用循环和递归实现。
以下是使用递归实现的代码示例:
```
#include <iostream>
using namespace std;
double sqrt2(int n) {
if (n == 0) {
return 1.0;
} else {
return 1.0 + 1.0 / (1.0 + sqrt2(n - 1));
}
}
int main() {
double result = sqrt2(100);
cout << "根号2的值约为:" << result << endl;
return 0;
}
```
在这个程序中,sqrt2函数接受一个整数n作为参数,表示计算无限连分数的前n项。当n为0时,返回1.0;否则,通过递归调用自身计算前n-1项的值,并用1.0除以这个值再加上1.0,得到前n项的值。
在主函数中,我们调用sqrt2函数计算无限连分数的值,并将结果输出到屏幕上。这里我们取n=100,即计算前100项的值,可以得到根号2的值约为1.414213。
相关问题
c++求语言怎样编码根号式子
C 语言中可以使用 math.h 头文件中的 sqrt() 函数来计算根号。例如,要计算 2 的平方根,可以使用以下代码:
#include <stdio.h>
#include <math.h>
int main() {
double x = 2.;
double result = sqrt(x);
printf("The square root of %lf is %lf\n", x, result);
return ;
}
输出结果为:
The square root of 2.000000 is 1.414214
注意,sqrt() 函数的参数必须是一个浮点数,如果传入整数,需要先将其转换为浮点数。
c++用cout输出开根号
可以使用sqrt函数来计算开根号,然后使用cout输出结果,示例代码如下:
```
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double num = 16.0;
double result = sqrt(num);
cout << "The square root of " << num << " is " << result << endl;
return 0;
}
```
输出结果为:
```
The square root of 16 is 4
```