pai = 4*(1-1/3+1/5-1/7 ....)
这个公式简单而优美,但美中不足,它收敛的太慢了。
如果我们四舍五入保留它的两位小数,那么:
累积了1项和是:4.00
累积了2项和是:2.67
累积了3项和是:3.47
。。。
请你写出它累积了100项的和是多少(四舍五入到小数后两位)。
源代码:
#include<>
//pai = 4*(1-1/3+1/5-1/7 ....)
double While()
{
double sum=0;
int flag=1;//奇数项位正,偶数项为负
double temp=1;
int i=1;
while(i<=100)
{
temp=1.0/(2*i-1)*(flag);
i++;
sum=sum+temp;
flag=-flag;
}
return sum;
}
int main()
{
double pai=0.0;
pai=4*While();
printf("%.8lf\n",pai);
return 0;
}
输出:3.13159290,所以四舍五入为3.13