2021-03-22

本文介绍了一个数列求和的问题,数列的第一项为n,后续项为前一项的平方根。题目要求计算前m项的和。程序中存在一个小错误,原本应该遍历到m-1,而不是m。修正后的代码正确地实现了数列的求和,并展示了如何在C语言中处理浮点数和递归过程。重点在于理解循环条件和数学运算的精确性。
摘要由CSDN通过智能技术生成

J

**

题目

**

数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
Input
输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。
Output
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。
Sample Input
81 4
2 2
Sample Output
94.73
3.41
Sponsor
答案:
#include"stdio.h"
#include"math.h"
int main(){
double x,m,n,sum;
while(scanf("%lf %lf",&n,&m)!=EOF){
sum=n;
for(int i=1;i<m;i++){
n=sqrt(n);
sum+=n;

	}
		printf("%.2lf\n",sum);
}
return 0;

}

题解:

自己卡的地方有两处

  1. for(int i=1;i<m;i++)这个题是求前m项和,所以i不是<=m,而是i<m.
  2.  n=sqrt(n);
     	sum+=n;
     	自己一直以为sum+=sqrt(n)与上面是一样的。
     	前者求的是根号n的递进,后者是根号n是个定值。
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值