求一种数列的和

在这里插入图片描述

//求一种数列的和
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int main()
{
    
    
	double n,m;
	while(scanf("%lf%lf",&n,&m) !=EOF)
	{
    
    
		int i=0;
		double s=0;
		while(i<m){
    
    
			s+=n;
			n=sqrt(n);
			i+=1;
		}
		printf("%.2lf\n",s);
	}
	return 0;
} 

调试报告:
1.一开始输入没有输出,立马反应是不是忘记了 & ,果不其然,忘了。。
2.一开始将 s 定义为整型,当然是浮点型啦
3.一开始将 n , m 按照题目要求设置成整型,但发现输出都是带两位小数 .00 的’整数‘,意识到应该是内层 while 循环的 n 的类型问题,故用精度更高的双精度(可以姑且理解为实数)
4.竟然将保留两位小数错写成 %2.lf ,基础知识还不够牢固!应为 %.2lf
也应该有人想到了下标实现:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
    
    
	int m;
	double s,n,a[10010];
	while(scanf("%lf%d",&n,&m)!=EOF){
    
    
		s=0;
		for(int i=1;i<=m;i++){
    
    
			a[i]=n;
			s=s+a[i];
			n=sqrt(n);
		}
		printf("%.2lf\n",s);
	}
	return 0;
 } 

本质上都是将 n 的值一边变化一边加到 s 上,从而满足题目要求
和ZDZ一起加油吧!
少壮不努力,
老大徒伤悲!
哦耶!

猜你喜欢

转载自blog.csdn.net/interestingddd/article/details/113489794