HDU 4493 Tutor 水题的收获。。

题目: http://acm.hdu.edu.cn/showproblem.php?pid=4493

题意我都不好意思说,就是求12个数的平均数。。。

但是之所以发博客,显然有值得发的。。。

这个题最坑的地方就是结果精确到便士,也就是小数点后2位,不输出后缀0,所以需要处理一下输出格式。

一开始我是用c语言这样写的:

 1 #include <stdio.h>

 2 #include <string.h>

 3 

 4 int main()

 5 {

 6     int t;

 7     scanf("%d", &t);

 8     while(t--)

 9     {

10         double x, sum = 0;

11         for(int i = 0; i < 12; i++)

12         {

13             scanf("%lf", &x);

14             sum += x;

15         }

16         char str[50];

17         sprintf(str, "%.2lf", sum/12.0);

18         int len = strlen(str);

19         while(str[len-1] == '0')

20             len--;

21         if(str[len-1] == '.')

22             len--;

23         str[len] = 0;

24         printf("$%s\n", str);

25     }

26     return 0;

27 }
C语言版

总感觉硬生生的修改字符数组不舒服,不便于封装,然后发现了java的DecimalFormat类,这个类很强大,可以定义浮点数输出格式,直接就能A掉这一题,所以记录一下,以免日后忘了。

 1 import java.text.DecimalFormat;

 2 import java.util.Scanner;

 3 

 4 public class Main {

 5     private static Scanner input;

 6     public static void main(String[] args){

 7         input = new Scanner(System.in);

 8         int t;

 9         DecimalFormat f = new DecimalFormat("#.##");

10         

11         t = input.nextInt();

12         while(t-- > 0) {

13             double x, sum = 0;

14             for(int i = 0; i < 2; i++) {

15                 x = input.nextDouble();

16                 sum += x;

17             }

18             System.out.println('$' + f.format(sum / 2.0));

19         }

20     }

21 }
Java版

 

你可能感兴趣的:(HDU)