每日一道算法题:求数列的和

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DR_eamMer/article/details/81711748
题目描述

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

输入描述:

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

输出描述:

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

示例

输入
81 4
2 2
输出
94.73
3.41

java代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {


    public static void main(String[] args) {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));  //创建BufferedReader
        String s=null;
        try {
            while ((s=br.readLine())!=null) {
                double sum=0;
                String [] sIn=s.split(" ");  //以空格分割字符串,返回值是字符类数组
                double n=Double.parseDouble(sIn[0]); //将字符类转成double类型
                int m=Integer.parseInt(sIn[1]); //将字符类转成int类型
                for (int i = 0; i < m; i++) {
                    sum+=n;
                    //System.out.println(sum);
                    n=Math.sqrt(n);  //算术平方根
                    //System.out.println(n);
                }
                System.out.printf("%.2f", sum);  //保留2位小数
            }
        } catch (NumberFormatException e) {   //字符类转型成数字可能会出越界错误
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

猜你喜欢

转载自blog.csdn.net/DR_eamMer/article/details/81711748