#include "stdio.h"
#include "math.h"
int main(void)
{
int n,i;
double j = 1;
double sum = 0;
scanf("%d", &n);
for(i = 1; i<= n; i++)
{
if((int)j%2 == 0)
{
sum -= 1.0/j;
}else{
sum += 1.0/j;
}
j = fabs(j) + 3;
}
printf("sum = %.3f\n",sum);
return 0;
}
你这个j每次都是负数,比如当j = 7的时候,最终也是用1除以-7.而不是除以7.
可以换成其他的写法’
比如用(-1)的n-1次方
#include<stdio.h>
int main()
{
int n;
int j=1;
scanf("%d",&n);
int i;
double sum=0.0;
int d=1;
for(i=1;i<=n;i++)
{
sum+=1.0/d*j;
d+=3;
j=-j;
}
printf("sum = %.3lf\n",sum);
return 0;
}