现在的位置: 首页 > 综合 > 正文

Q2009

2013年04月12日 ⁄ 综合 ⁄ 共 912字 ⁄ 字号 评论关闭

/*

一开始我用的是:

DecimalFormat  df = new DecimalFormat(".##"); 就WA了。

我以为是精度的问题,又换成Printf("%.2f",sum); 结果又PE了

又继续搞DecimalFormat,给df.setRoundingMode(RoundingMode.HALF_UP); //默认是RoundingMode.HALF_EVEN

结果还WA

最后改成:

DecimalFormat  df = new DecimalFormat(".00"); 就AC了。

*/

Problem Description
数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
 


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


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


Sample Input
81 4 2 2
 


Sample Output
94.73 3.41

import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Scanner;


public class Q2009 {
	public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		while(s.hasNext()){
			double n = s.nextDouble(),m = s.nextInt();
			if(n >= 10000 || m >= 1000) break; 
			double sum = 0;
			DecimalFormat df = new DecimalFormat(".00");
//			df.setRoundingMode(RoundingMode.HALF_UP);
			for(int i = 1 ; i <= m; i ++){
				sum += n;
				n = Math.sqrt(n);
			}
			System.out.println(df.format(sum));
//			System.out.printf("%.2f\n",sum);
		}
		s.close();
	}
}

抱歉!评论已关闭.