HDU 4493 Tutor

Tutor

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 1152    Accepted Submission(s): 206
Problem Description
Lilin  was  a  student  of  Tonghua  Normal  University.  She  is  studying  at  University  of Chicago now. Besides studying, she worked as a tutor teaching Chinese to Americans. So, she  can  earn  some  money  per  month.  At  the  end  of  the  year,  Lilin  wants  to  know  his average  monthly  money  to  decide  whether  continue  or  not.  But  she  is  not  good  at calculation, so she ask for your help. Please write a program to help Lilin to calculate the average money her earned per month.
Input
The first line contain one integer T, means the total number of cases.
Every  case  will  be  twelve  lines.  Each  line  will  contain  the  money  she  earned per month.  Each  number  will  be  positive  and  displayed  to  the  penny.  No  dollar  sign  will  be included.
Output
The output will be a single number, the average of money she earned for  the twelve months.  It  will  be  rounded  to  the  nearest  penny,  preceded  immediately  by  a  dollar  sign without tail zero. There will be no other spaces or characters in the output.
SampleInput
2 
100.00 
489.12 
12454.12 
1234.10 
823.05 
109.20 
5.27 
1542.25 
839.18 
83.99 
1295.01 
1.75
100.00 
100.00 
100.00 
100.00 
100.00 
100.00 
100.00 
100.00 
100.00 
100.00 
100.00 
100.00
SampleOutput
$1581.42 
$100

 

 Code1:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <vector>
#include <queue>
#include <cmath>
#include <map>
#include <set>
#define eps 1e-7
#define LL long long
#define pb push_back
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std;

int main()
{
    int T;
    double mon,f;
    scanf("%d",&T);
    while(T--){
        mon=0.0;
        for(int i=0;i<12;i++) {
            scanf("%lf",&f);
            mon+=f;
        }
        mon/=12.0;
        mon+=0.005;     //四舍五入的方法:先加0.005,再乘100,向下取整
        LL tmp=(LL)floor((mon*100));
        LL x=tmp%10;
        LL y=(tmp%100)/10;
        cout<<"$"<<tmp/100;
        if(x) cout<<"."<<y<<x;
        else if(y) cout<<"."<<y;
        puts("");
    }
}



Code:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <vector>
#include <queue>
#include <cmath>
#include <map>
#include <set>
#define eps 1e-7
#define LL long long
#define pb push_back
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std;

double x;
int T;
LL mo;

int main()
{
    scanf("%d",&T);
    while(T--){
        mo=0;
        for(int i=0;i<12;i++){
            scanf("%lf",&x);
            mo=mo+(LL)(x*10000);
        }
        mo/=12;
        LL tmp=mo%100;
        if(tmp>=50) mo+=100;
        mo/=100;
        LL x=mo%10;
        LL y=(mo%100)/10;
        printf("$%I64d",mo/100);
        if(x) {
            printf(".%I64d%I64d",y,x);
        }
        else if(y){
            printf(".%I64d",y);
        }
        puts("");

    }
    return 0;
}


 

你可能感兴趣的:(HDU 4493 Tutor)