求公式1-1/1+1/2-1/3+1/5……的结果,要求每一项的绝对值大于10的负6次方(提示:每一项的分母的绝对值来自于Fibonacci数列)
-
用循环,每循环一次分母加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;
}