题目描述

有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。

输入

N

输出

数列前N项和

样例输入

10

样例输出

16.48

来源/分类

C语言 

题目截图:

ACMNO.12有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。  输入  N  输出  数列前N项和  样例输入  10_赋值


思路:

看到这个题瞬间就有了思路,
s+=(b*1.0)/c;
t=b;
b=b+c;
c=t;
只是一开始,我没有搞那个大众都说的一个temp的东西!
导致赋值过程出错!
一直是整数跟整数相除!没有浮点数的出现。
后来尝试了一下,这个语句就成功啦!
可能这个问题跟编译器种类有关的,我的是dev-c++。就会出现这个问题!
printf("s %.2f\n",s);
对呀,就是printf("%.2f").这个是小数点保留几位就写阿拉伯数字几~

代码:

#include<iostream>
using namespace std;
int main()
{
double a,b,c,t;int i;
double s;b=2.0;c=1.0;
//printf("%.2f\n",s);
//printf("%.2f\n",b);
// printf("%.2f\n",c);
// cout<<endl;
cin>>a;
for(i=1;i<=a;i++)
{
s+=(b*1.0)/c;
t=b;
b=b+c;
c=t;
//printf("s %.2f\n",s);
// printf("%.2f\n",b);
// printf("%.2f\n",c);
}
printf("%.2f",s);
}

代码截图:

ACMNO.12有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。  输入  N  输出  数列前N项和  样例输入  10_c语言_02


代码执行情况截图:

ACMNO.12有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。  输入  N  输出  数列前N项和  样例输入  10_C语言-分数数列_03


OJ结果:

ACMNO.12有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。  输入  N  输出  数列前N项和  样例输入  10_赋值_04