今天做题,尝试用自己的思路做,发现答案不对,到底是哪出问题呢?我认为的最后一项默认是整数,为什么最后项数差别那么大。
#include
int main(void)
{
int n;
double pai=0;//其实是四分之派
for(n=1; ; n++)
{
if(n%2 != 0)
pai = pai+(1/(float)(2*n-1));
else
pai = pai-(1/(float)(2*n-1));
if(1/(float)(2*n-1)-(1*10e-4)<0)//我认为的结束条件,转float是怕整型相除等于0
break;
}
printf("%.6lf\n%d",4*pai,n);
return 0;
}
用codeblocks的运行结果:
3.143589
501
Process returned 0 (0x0) execution time : 0.018 s
Press any key to continue.
10e-4
改成 1e-4