每日一道演算法題:求數列的和
阿新 • • 發佈:2019-01-01
題目描述
數列的第一項為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();
}
}
}