计算一个交错级数的和

Description

计算Π/4= 1-1/3+1/5 - 1/7 + ......,直到最后一项小于10⁻⁶。保留小数点后六位。

注意:计算到最后一项小于10⁻⁶时,就停止。

Input

无需输入

Output

3.141591

python解法

s = 0.0  # 初始化变量s为0.0,用于存储累加的结果
t = -1  # 初始化变量t为-1,表示每一项的符号,初始为负数
i = 1  # 初始化变量i为1,表示当前正在计算的项数

# 循环直到某一项小于10^-6
while True:  # 开始一个无限循环
    n = 1 / i  # 计算当前项的值,即1除以i
    if n < 1e-6:  # 判断当前项的值是否小于10^-6,也可以写成10**-6
        break  # 如果小于10^-6,则跳出循环
    s += t * n  # 将当前项的值加到s上,注意要乘以t来表示正负号
    t = -t  # 切换t的符号,即如果之前是-1,则变为1;如果之前是1,则变为-1
    i += 2  # i的值增加2,因为此代码实现的是交错级数求和,即1, -1/3, 1/5, -1/7,...

# 输出结果,保留6位小数
print(f"{abs(s) * 4:.6f}")  # 输出s的绝对值乘以4的结果,并保留6位小数。

c++解法

#include<bits/stdc++.h>
using namespace std;

int main() {
	double n,s=0,t=-1;

	for(int i = 1; i<=999999999; i+=2) {
		n = 1.0/i;
		if(n<pow(10,-6)) {
			cout<<n<<endl;
			break;
		}
		s += t*n;
		t = -t;
	}

	cout<<fixed<<setprecision(6);
	cout<<fabs(s)*4<<endl;

	return 0;
}
如果您有更优的解法,欢迎在评论区一起交流噢~
阅读剩余
THE END