一道C++的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 07:06:21
用 公式求π的近似值,分别取10000项与20000项进行计算,计算结果与π的值3.1415926进行比较。

用 π / 4 ≈ 1 - 1/3 + 1/5 - 1/7 + ……公式求π 的近似值

#include <stdio.h>
#include <math.h>
double funpi(int itemnumber)
{
int s;
double n, t, pi;
t = 1; /* 第一项为1 */
pi = 0; /* 多项式的和 */
n = 1.0; /* 各项分母 */
s = 1; /* 控制各项正负 */
int i=0;
for(i=0;i<itemnumber;i++)
{
pi = pi + t; /* 各项累加 */
n = n + 2; /* 分母以公差2递增 */
s = -s;
t = s / n; /* 计算下一项 */
}
pi *= 4;
return pi;
}
int main()
{
printf("pi=%10.6f\n", funpi(10000));
printf("pi=%10.6f\n", funpi(20000));
return 0;
}

级数展开似乎是3*(1-1/2+1/3-1/4+1/5+.......+(-1)的(n+1)次方*1/n)