1 条题解
-
0
练46.1 求π的值
解题思路
自定义arctan函数,幂项从x开始,每次乘-x²生成下一奇次幂,除以对应奇数。把首个绝对值小于1e-6的末项也加完后结束,再乘6求π近似。
正确性说明
计算规则直接来自题目定义。按所述顺序处理时,已完成部分的结果被准确保存在累加量、计数或当前状态中;下一步只加入新增贡献。最终得到完整要求的结果。
易错点
题目要求按截断条件计算,不能直接输出系统π常数;十位小数。
复杂度
累加k项,时间O(k),空间O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; double atanSeries(double x) { double power = x, sum = 0; int d = 1; while (true) { double term = power / d; sum += term; if (fabs(term) < 1e-6) break; power *= -x * x; d += 2; } return sum; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(10) << 6 * atanSeries(1 / sqrt(3.0)) << "\n"; return 0; }
- 1