版权声明:转载请声明原文链接地址,谢谢! https://blog.csdn.net/weixin_42859280/article/details/84931794
题目描述
有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。
输入
N
输出
数列前N项和
样例输入
10
样例输出
16.48
来源/分类
C语言
题目截图:
思路:
看到这个题瞬间就有了思路,
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);
}
代码截图:
代码执行情况截图:
OJ结果: