有一分数序列: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13, ... 求出这个数列的前n项之和。
关于输入
第一行为整数m,表示有m行数据需要处理。
其后每行一个整数n,表示求前n项之和。
关于输出
输出为m行,每行对应于所求的前n项和,精确到小数点后3位。
例子输入
3
20
10
5
例子输出
32.660
16.480
8.392
谢!
C语言编程:序列求和。
答案:4 悬赏:0
解决时间 2021-12-11 19:18
- 提问者网友:神仙爷爷
- 2021-12-11 15:53
最佳答案
- 二级知识专家网友:滚刀废物浮浪人
- 2021-12-11 16:02
#include <stdio.h>
#include <stdlib.h>
int main(void){
int m;
scanf("%d", &m);
while(m--){
int n, i;
double res = 0;
double temp1 = 1.0, temp2 = 2.0;
scanf("%d", &n);
for(i = 0; i < n; ++i){
res = res + temp2/temp1;
temp2 += temp1;
temp1 = temp2 - temp1;
}
printf("%.3lf\n", res);
}
}
#include <stdlib.h>
int main(void){
int m;
scanf("%d", &m);
while(m--){
int n, i;
double res = 0;
double temp1 = 1.0, temp2 = 2.0;
scanf("%d", &n);
for(i = 0; i < n; ++i){
res = res + temp2/temp1;
temp2 += temp1;
temp1 = temp2 - temp1;
}
printf("%.3lf\n", res);
}
}
全部回答
- 1楼网友:情战辞言
- 2021-12-11 18:24
不明白你的意思,我这个代码是算前20项之和,你说清楚点,我改下程序。
#include "Stdio.h"
#include "Conio.h"
main()
{
int i,t,n=20;
float a=2,b=1,s=0;
for(i=1;i<=n;i++)
{
s=s+a/b;
t=a;a=a+b;b=t;
}
printf("sum is %9.3f\n",s);
getch();
}
- 2楼网友:颜值超标
- 2021-12-11 17:31
#include <stdio.h>
#define MAXSIZE 100
int main(void){
int m, j,k;
int num[MAXSIZE]={0};
printf("请输入要计算的行数:\n");
scanf("%d", &m);
for(j=0;j<m;j++){
printf("想要计算到哪项?请输入第%d行数值:\n", j+1);
scanf("%d",&num[j]);
}
for(k=0;k<m;k++){
int i;
double res = 0;
double temp1 = 1.0, temp2 = 2.0;
for(i = 0; i < num[k]; ++i){
res = res + temp2/temp1;
temp2 += temp1;
temp1 = temp2 - temp1;
}
printf("第%d行计算结果为%.3lf\n", k+1,res);
}
}
- 3楼网友:一身浪痞味
- 2021-12-11 16:38
题目不清
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯