实在是不知道如何下手啊

求公式1-1/1+1/2-1/3+1/5……的结果,要求每一项的绝对值大于10的负6次方(提示:每一项的分母的绝对值来自于Fibonacci数列)

img

-

用循环,每循环一次分母加1,每项乘-1,循环条件是每项绝对值小于10的负6次方,或分母小于10的6次方

用while循环比较好

#include <stdio.h>
#include <math.h>
int function(int n);
int main()
{
       int down = 1,flag = 1;
       int first = 1;
       int second = 1;
    double sum = 0;
    while(fabs(1.0 / down) > 1e-6){
        down = first + second;
        sum += (flag * (1.0 / down));
        flag = -flag;
        first = second;
        second = down;
        //printf("%d %d\n",first,second);
    }
    printf("%lf",sum);
}
#include <stdio.h>
int main()
{
    int a=1,b=1,c,flag = -1;
    double item = 1,sum = 1;
    while(item >= 1e-6)
    {
        sum += flag * item;
        c = a+b;
        a = b;
        b = c;
        item = 1.0/c;
        flag *= -1;
    }
    printf("%lf",sum);
    return 0;
}