题目

使用莱布尼茨级数公式估算圆周率 π 的近似值,累加计算前 n 项。公式为:π/4 = 1 - 1/3 + 1/5 - 1/7 + ...

输入格式:一行输入一个正整数 n,表示累加项数。

输出格式:输出保留 6 位小数的浮点数,表示估算出的 π 值,末尾换行。

数据范围与约定:1 ≤ n ≤ 107。

思路与算法

1. 级数通项规律
第 k 项(从 1 开始)的分母为奇数 2 * k - 1,符号正负交替。

2. 符号交替迭代
在循环中通过 sign = -sign 翻转符号,避免调用指数运算 (-1)**(k-1),计算效率大幅提高。

完整程序

n = int(input())

s = 0.0
sign = 1

# 莱布尼茨级数通项:分母为奇数 2k-1,符号正负交替
for k in range(1, n + 1):
    s += sign / (2 * k - 1)
    sign = -sign

# 级数收敛于 π/4,累加和乘以 4 得到 π 近似值
print(f'{s * 4:.6f}')

运行示例

输入:

1000

输出:

3.140593