2318. 子序列的和

1000ms 256MB 简单 循环
题目描述
给定两个正整数 $n$ 和 $m$,请计算以下序列的和: $$S = \sum_{i=n}^{m} \frac{1}{i^2} = \frac{1}{n^2} + \frac{1}{(n+1)^2} + \dots + \frac{1}{m^2}$$ 请输出计算结果,并保留小数点后 5 位。
输入格式
一行,包含两个正整数 $n$ 和 $m$ ($1 \le n \lt m \lt 10^6$)。
输出格式
一个浮点数,表示计算结果,保留五位小数。
样例 1
输入 (Input)
2 4
输出 (Output)
0.42361
样例 2
输入 (Input)
65536 655360
输出 (Output)
0.00001
- 对于所有数据:$1 \le n \lt m \lt 10^6$。 - **陷阱提示**: 当 $i$ 接近 $10^6$ 时,$i^2$ 会达到 $10^{12}$。 - 在 C++ 中,`int` 的最大值约为 $2 \times 10^9$,直接计算 `i * i` 会发生**整型溢出**。 - 即使使用 `long long`(最大约 $9 \times 10^{18}$)可以存下 $i^2$,但在进行 `1.0 / (i * i)` 运算时,仍需注意浮点数的精度问题。 - **算法建议**: 为了保险起见,建议直接将 $i$ 转换为 `double` 后再进行平方运算,即使用 `1.0 / ((double)i * i)`。
自测终端 stdin → stdout
输入 stdin
CtrlShiftEnter
输出 stdout

                
错误 stderr

                
CtrlEnter提交
自动保存已开启
操作成功
wzs_oj@kernel:~ — wzs-sh
guest@wzsoj:~$
刷新页面 F5
复制 Ctrl+C
粘贴 Ctrl+V
搜索题目
站点公告
今日神谕
CSP 倒计时
排行榜
我的提交
Esc 关闭 Enter 跳转 支持模糊匹配数字