如何sum定义为double就错了 定义为float就对了 不知道为什么
这道题存储办法和斐波那契数列存储思想相同
#include <stdio.h>
int main(int argc, char *argv[])
{
int n;
float sum;
while(scanf("%d",&n)!=EOF)
{
if(n==1) printf("1.000000\n");
else
{
double f1,f2,f3;
f1=1;
f2=2;
sum=1;
int cas=1;
while(cas<n)
{
if(cas%2==1) sum-=f1/f2;
else sum+=f1/f2;
f3=f1+f2;
f1=f2;
f2=f3;
cas++;
}
printf("%.6f\n",sum);
}
}
return 0;
}
|