计算1-1/2+1/4-1/8+1/16-……之和,直至加项小于10-6为止。

计算1-1/2+1/4-1/8+1/16-……之和,直至加项小于10-6为止。


#include <stdio.h>
int main()
{
    int n=1;
    int flag = 1;
    double sum = 0;
    while (1.0/n >= 1e-6)
    {
        sum += flag * 1.0/n;
        flag =-flag;
        n*=2;
    }
    printf("%lf",sum);
    return 0;
}

#include<stdio.h>
#include<math.h>
void main()
{
float sum = 0;
int i=1 , j = 1; // 用j控制正负
for(i=2; 1.0/i>1e-6;i*=2)
{
sum += pow(-1,j)*(1.0/i);
j++;
}
printf("%.3f",sum);
}