#include
#include
int main()
{
double eps;
scanf("%lf",&eps);
int fenmu=1;
double jieguo=1;
int flag=1;
int i;
double sum=0;
for(i=1;;i++){
jieguo=1.0*flag/(1+(i-1)*3);
sum+=jieguo;
flag=-flag;
if(fabs(jieguo)
break;
}
}
printf("sum = %.6lf",sum);
return 0;
}
此代码摘自CSDN某博主
#include
#include
int main(){
int fm = 1;
double eps, item = 0.0, sum = 0.0, sign = 1.0;
scanf("%lf", &eps);
do{
item = sign*(1.0/fm);
sign = -sign;
fm += 3;
sum += item;
}while( fabs(item) > eps );
printf("sum = %lf", sum);
return 0;
}
很明显,前一个是新生村的产物。后一个更老道,求分母的时候只用了加法(前后两项分母相差3),效率更高。