代码如下:
import java.util.Scanner;
/**
* 数列的定义如下: 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
* 输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。
* 对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。
* 81 4 -> 94.73
* 2 2 -> 3.14
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int n = sc.nextInt();
int m = sc.nextInt();
if (n==0) System.out.printf("%.2f",0);
if (n<0 || m<0){
System.out.println("请重新输入");
sc.close();
}
double res = getSum(n,m);
System.out.printf("%.2f",res);
}
sc.close();
}
static double getSum(double n, int m){
double sum = 0;
for (int i=0;i<m;i++){
sum += n;
n = Math.sqrt(n);
}
return sum;
}
}