列表

详情


OR66. 求数列的和

描述

数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

输入描述

输入数据有多组,每组占一行,由两个整数n(n < 10000)和m(m < 1000)组成,n和m的含义如前所述。

输出描述

对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。

示例1

输入:

81 4
2 2

输出:

94.73
3.41

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 360KB, 提交时间: 2018-09-19

#include<stdio.h>
#include<math.h>
int main()
{
    int n,m;
    while (scanf("%d%d",&n,&m)!=EOF){
        double sum=0,a=(double)n;
        for(int i=0;i<m;i++) sum+=a,a=sqrt(a);
        printf("%.2lf\n",sum);}
    }

C++ 解法, 执行用时: 1ms, 内存消耗: 368KB, 提交时间: 2017-09-05

#include<iostream>
#include"math.h"
#include <iomanip>  
using namespace std;
int main(){
    int m;
    double n,sum=0;
   // int qiuhe(int i,int n);
    cin>>n>>m;
    //a=n;
   for(int i=0;i<m;i++){
	sum+=n;
	n=sqrt(n);
}
    cout<<fixed<< setprecision(2)<<sum;
	return 0;
}

上一题