题解 | 学分绩点
学分绩点
https://www.nowcoder.com/practice/a0c09a7e0da04e728810a8aca7226b7b
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
int pointSum = 0;
double gradeSum = 0;
int [] array = new int[a];
for (int i = 0; i < a; i++) {
array[i] = in.nextInt();
pointSum += array[i];
}
for (int i = 0; i < a; i++) {
int score = in.nextInt();
gradeSum += getScore(score) * array[i];
}
System.out.printf( "%.2f", 1.0 * gradeSum / pointSum);
}
}
/**
绩点
90——100 4.0
85——89 3.7
82——84 3.3
78——81 3.0
75——77 2.7
72——74 2.3
68——71 2.0
64——67 1.5
60——63 1.0
60以下 0 1
*/
public static double getScore(int grade) {
if (grade >= 90) return 4.0;
if (grade >= 85) return 3.7;
if (grade >= 82) return 3.3;
if (grade >= 78) return 3.0;
if (grade >= 75) return 2.7;
if (grade >= 72) return 2.3;
if (grade >= 68) return 2.0;
if (grade >= 64) return 1.5;
if (grade >= 60) return 1.0;
else return 0.0;
}
}
