[传智杯 #3 初赛] 期末考试成绩
题目描述
传智专修学院的 C++ 程序设计课程的评价体系是这样的:
首先,所有学生会有一个卷面得分,这个得分一定是一个 [ 0 , 100 ] [0,100] [0,100] 之间的整数。
如果卷面得分在 90 90 90 分及以上,那么他的 GPA(加权平均成绩) 就是满分 4.0 4.0 4.0。
如果卷面得分在 60 ∼ 89 60 \sim 89 60∼89 之间,那么他每比 90 90 90 分少 1 1 1 分,那么他的分数就会在 4.0 4.0 4.0 的基础上减少 0.1 0.1 0.1。
如果卷面得分不到 60 60 60 分,那么善良的老师会给他照顾。具体来说,如果他的分数为 x x x ,那么老师会把他的分数调整为 x × 10 \sqrt{x}\times 10 x×10(向下取整) ,再计算他的 GPA。
如果经过调整该学生的得分依旧没满 60 60 60 ,那么他就挂科了,GPA 就是 0 0 0 分。
现在给你一个人的期末卷面得分,请你输出他的最终 GPA
输入格式
一行一个整数 x x x,表示该人的期末得分。
输出格式
一个小数点后只有一位的浮点数,表示该同学获得的GPA。
请注意,如果有 . 0 .0 .0 请保留。
样例 #1
样例输入 #1
99
样例输出 #1
4.0
样例 #2
样例输入 #2
88
样例输出 #2
3.8
样例 #3
样例输入 #3
12
样例输出 #3
0.0
提示说明
对于
20
%
20\%
20% 的数据,满足
90
≤
x
≤
100
90 \leq x \leq 100
90≤x≤100;
对于额外
30
%
30\%
30% 的数据,满足
60
≤
x
≤
100
60 \leq x \leq 100
60≤x≤100;
对于
100
%
100\%
100% 的数据,满足
0
≤
x
≤
100
0 \leq x \leq 100
0≤x≤100。
代码内容
//#include <iostream>
//#include <algorithm>
//#include <string>
//#include <cmath>
//#include <ctime>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x,i;
cin>>x;
double gpa;
if(x>=90)
gpa=4.0;
else if(x>=60)
gpa=4.0-(90-x)*0.1;
else
{
x=int(sqrt(x)*10);
if(x>=60)
gpa=4.0-(90-x)*0.1;
else gpa=0.0;
}
printf("%.1lf",gpa);
return 0;
}