题目描述
有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。
输入N
输出数列前N项和
IO模式
本题IO模式为标准输入/输出(Standard IO),你需要从标准输入流中读入数据,并将答案输出至标准输出流中。
输入样例1 10
输出样例1 16.48
语言: C
话不多说先放出代码
#include <stdio.h>
int main()
{
float sum,num1,num2;//sum为总和
int n;
scanf("%d", &n);
num1=1;
num2=2;//给num1,num2赋初值,即数列中第一个分数的分子与分母
sum=0;
for(int i=1;i<=n;i++)
{
float fz,fm;//fz为分子,fm为分母 (原谅我用拼音)
fz=num2;//num2分子更替,num1分母更替
fm=num1;
sum+=(fz/fm);
num1=fz;
num2=fm+fz;
}
printf("%.2f",sum);
return 0;
}
/*cin 10
cout 16.48
*/
好啦现在来讲一下思路
由分数序列: 2/1 3/2 5/3 8/5 13/8 21/13容易看出(看不出的可以用笔在纸上写写看),从第二项开始,分母为前一个分数的分子,分子为前一个分数的分子和分母的和。由此解题。
由于本人是初学者写的应该不算好,如果有更好的方法欢迎交流!
如果有帮到你请点个赞吧!也可以关注我,以后会分享更多,谢谢!
399

被折叠的 条评论
为什么被折叠?



