洛谷 P8823

发布时间:2023年12月22日

# [传智杯 #3 初赛] 期末考试成绩

## 题目描述

传智专修学院的 Java 程序设计课程的评价体系是这样的:

首先,所有学生会有一个卷面得分,这个得分一定是一个 $[0,100]$ 之间的整数。

如果卷面得分在 $90$ 分及以上,那么他的 GPA(加权平均成绩) 就是满分 $4.0$。

如果卷面得分在 $60 \sim 89$ 之间,那么他每比 $90$ 分少 $1$ 分,那么他的分数就会在 $4.0$ 的基础上减少 $0.1$。

如果卷面得分不到 $60$ 分,那么善良的老师会给他照顾。具体来说,如果他的分数为 $x$ ,那么老师会把他的分数调整为 $\sqrt{x}\times 10$(向下取整) ,再计算他的 GPA。

如果经过调整该学生的得分依旧没满 $60$ ,那么他就挂科了,GPA 就是 $0$ 分。

现在给你一个人的期末卷面得分,请你输出他的最终 GPA

## 输入格式

一行一个整数 $x$,表示该人的期末得分。

## 输出格式

一个小数点后只有一位的浮点数,表示该同学获得的GPA。

请注意,如果有 $.0$ 请保留。

## 样例 #1

### 样例输入 #1

```
99
```

### 样例输出 #1

```
4.0
```

## 样例 #2

### 样例输入 #2

```
88
```

### 样例输出 #2

```
3.8
```

## 样例 #3

### 样例输入 #3

```
12
```

### 样例输出 #3

```
0.0
```

## 提示

对于 $20\%$ 的数据,满足 $90 \leq x \leq 100$; ?
对于额外 $30\%$ 的数据,满足 $60 \leq x \leq 100$; ?
对于 $100\%$ 的数据,满足 $0 \leq x \leq 100$。

#include <iostream>
#include <string>
#include<math.h>
using namespace std;

int n;
double res=0;
int main() {
	cin >> n;
	if (n < 60)
		n = (int)(pow(n, 0.5) * 10);

	if (n >= 90)
		res = 4;
	else if (n >= 60)
		res = 4 - (90 - n) / 10.0;		
	printf("%.1f\n",res);

}

文章来源:https://blog.csdn.net/laocooon/article/details/135158927
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。