关闭

sdibt 2552 计算1 - 1/2 + 2/3 - 3/5 + 5/8 - 8/13 + 13/21…前n项

536人阅读 评论(0) 收藏 举报

如何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;
}


 

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:41489次
    • 积分:947
    • 等级:
    • 排名:千里之外
    • 原创:56篇
    • 转载:5篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论