A jubeat

Time Limit:1000MS  Memory Limit:65535K

题型: 编程题   语言: 无限制

 

描述

jubeat是一款由日本KONAMI倾心打造的体感音乐游戏,该作在日韩、香港等地区一经推出就引起了玩家极大关注,现在也是当地各大机厅最热门的音乐游戏。
jubeat的界面如图所示,采用了4x4配置的16个正方形透明按钮操作,每个按钮下方都有对应的显示画面,玩家只要配合音乐节奏和画面提示依次按下显示的符号(由小而大的图形),即可获得高分。.
按下按键后jubeat对于分数的判定有4种:Perfect, Great, Good和Bad。分数的计算方式为:1000000 * (Perfect的个数 + 0.7 * Great的个数 + 0.4 * Good的个数 + 0.1 * Bad的个数) / 总音符数
而jubeat对于结果的判定也是分等级的,具体如下表:

等级	分数
EXC 	1000000
SSS	980000~999720
SS	950000~979999
S	900000~949999
A	850000~899999
B	800000~849999
C	700000~799999
D	500000~699999
E	0~499999

给出一局中Perfect的个数,Great的个数,Good的个数,Bad的个数以及总音符数,求总分数以及获得的等级。

 

输入格式

第一行输入一个正整数T(1 <= T <= 1000),表示将要输入的测试数据数量。
接下来是T组测试数据,每组测试数据包括5个整数n,P,G,g,B,分别代表总音符数,Perfect的个数,Great的个数,Good的个数,Bad的个数。(1 <= n <= 1100, 保证P+G+g+B的和与总音符数相等)

 

输出格式

对于每一组测试数据,输出一行“Case X: ”,其中X表示第几组数据。然后输出总分数以及对应的等级,分数和等级间用一个空格隔开。分数的取整为最接近的整数(不足0.5向下取整,否则向上取整)

 

输入样例

3
151 1 50 66 34
4 1 1 1 1
5 5 0 0 0

 

输出样例

Case 1: 435762 E
Case 2: 550000 D
Case 3: 1000000 EXC
#include<stdio.h>
#include<math.h>
int main()
{
    int T,i,temp;
    double  n,p,G,g,B,sum;
    scanf("%d",&T);
    i=1;
    for(i=1;i<=T;i++)
    {
        sum=0;
        scanf("%lf%lf%lf%lf%lf",&n,&p,&G,&g,&B);    
        sum=1000000*(p+0.7*G+0.4*g+0.1*B)/n;
        temp=floor(sum+0.5);
        if(temp>=1000000) printf("Case %d: %d EXC
",i,temp);
        else if(temp>=980000&&temp<=999720) printf("Case %d: %d SSS
",i,temp);
        else if(temp>=950000&&temp<=979999) printf("Case %d: %d SS
",i,temp);
        else if(temp>=900000&&temp<=949999) printf("Case %d: %d S
",i,temp);
        else if(temp>=850000&&temp<=899999) printf("Case %d: %d A
",i,temp);
        else if(temp>=800000&&temp<=849999) printf("Case %d: %d B
",i,temp);
        else if(temp>=700000&&temp<=799999) printf("Case %d: %d C
",i,temp);
        else if(temp>=500000&&temp<=699999) printf("Case %d: %d D
",i,temp);
        else printf("Case %d: %d E
",i,temp);

    }
     return 0;
}
View Code
原文地址:https://www.cnblogs.com/orchidzjl/p/4263628.html