这道题居然涉及了统计学知识,嘿嘿,其实也没有那么难。

原题地址:http://poj.org/problem?id=1004

POJ 1004 财政管理

描述

Larry 今年毕业找到了工作。他赚了大把大把的钱,但是看起来总是不够的样子。Larry 已经决定开始用理财来解决他的经济问题。第一步就是弄清楚他的钱被用来干什么了。Larry 有银行账号的记录,所以他能从这里知道他的每月结余。请你帮助 Larry 写一个程序,来看看在过去的 12 个月内,Larry 每月的平均结余是多少。

输入

输入将占用 12 行,每行会包含他银行账号中每个月的余额。每个数字都是正数,而且会精确到分(也就是小数点后两位)。输入数据中不会有美元符号。

输出

输出你计算出那 12 个月的每月平均结余。请四舍五入地精确到分(即小数点后两位)。数字之前紧随美元符号,数字之后紧随一个换行。请注意,输入中不存在任何其它的空白字符。

样例输入

100.00
489.12
12454.12
1234.10
823.05
109.20
5.27
1542.25
839.18
83.99
1295.01
1.75

样例输出

$1581.42

解题思路

没错,它果然是一道统计学的题目,并且还涉及到了计算平均数的知识。多么高深啊。高深的题目总是有简单的代码,就比如动规啦,等等。

源代码

玩笑开完就看源码吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.text.*;
import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        final int count = 12;
        float total = 0.0f;

        for (int i = 0; i < count; ++i) {
            total += cin.nextFloat();
        }

        float average = total / (float)count;
        int penny = (int)(average * 100.0f + .5f);
        float round = (float)penny / 100.0f;

        String pattern = "#.##";
        DecimalFormat decimal = new DecimalFormat(pattern);
        String result = decimal.format(round);

        System.out.println("$" + result);
    }
}

原创文章,转载请注明来源:http://euyuil.com/2290/poj-1004-financial-management/