首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >苦苦挣扎的大学生GPA计算器

苦苦挣扎的大学生GPA计算器
EN

Code Golf用户
提问于 2017-12-11 16:41:38
回答 6查看 3.2K关注 0票数 13

GPA计算器

(GPA =平均分数)

你是一个紧张的大学生在期末考试周。与其为即将到来的考试而学习,你决定最好在学期结束时决定你的平均绩点是多少。这样你就有了数据来支持你决定整夜熬夜来得到微积分中的A,而不是一个B留在院长的名单上!

作为一个计算机专业的专业,你想找到最酷的方式来确定这个GPA。当然,最酷的方法是使用最短的代码!这是密码-高尔夫,所以以字节为单位的最短代码将获胜!

详细信息

  • 你去的学院使用的是基本的GPA和学分时间。
  • A的字母等级为4.0,B为3.0,C为2.0,D为1.0,F为0.0。
  • 你的平均绩点是加权平均绩点,所以4学分班的A是1学分班A的4倍(更多的权重说明见下面的例子)。
  • 学时范围为1-4小时。
  • 您的程序需要有两个命令行输入的列表,等级和信用小时。您可以通过命令行确定将这些输入到程序中的最佳方法。您不需要担心太多的输入,但确保您的代码可以处理19个学分学期。
    • 输入:A_1 B_4 C_ 2…

  • 您的程序必须使用3位数字(即X.XX)输出GPA。
  • 你的GPA需要四舍五入到小数点后两位。用任何你喜欢的方式(地板、木耳、底座等)绕一圈(…)

输入示例(选择哪个最适合您的设计)

  • A1B3C2F3B4
  • A1 B3 C2 F3 B4
  • A 1 B 3 C 2 F 3 B 4
  • A,1,B,3,C,2,F,3,B,4
  • A1,B3,C2,F3,B4

或上述任何一种组合,如果您使用列出所有年级的格式,则它们的学分时间:

  • 即A B A A 3 4 1 1

示例

代码语言:javascript
复制
Input - A 3 B 4 A 1 A 1
Output - 3.56
Explanation: (4.0 * 3 + 3.0 * 4 + 4.0 * 1 + 4.0 * 1)/(3+4+1+1) = 3.555556 rounded off to 3.56 

Input - A 4 F 2 C 3 D 4
Output - 2.00
Explanation: (4.0 * 4 + 0.0 * 2 + 2.0 * 3 + 1.0 * 4)/(4+2+3+4) = 2 rounded off to 2.00
EN

回答 6

Code Golf用户

发布于 2017-12-11 17:20:25

Python 3,66字节

-5字节,多亏了Rod。

代码语言:javascript
复制
lambda g,c:'%.2f'%sum('FDCBA'.find(i)*j/sum(c)for i,j in zip(g,c))

在网上试试!

票数 4
EN

Code Golf用户

发布于 2017-12-11 17:16:29

Python 2,69字节

代码语言:javascript
复制
lambda x:'%.2f'%sum('FDCBA'.find(a)*b*1./sum(zip(*x)[1])for a,b in x)

在网上试试!

票数 3
EN

Code Golf用户

发布于 2017-12-11 17:27:02

Wolfram语言(数学),39字节

代码语言:javascript
复制
N[(5-LetterNumber@#2/.-1->0).#/Tr@#,3]&

获取一个学分小时列表,然后是一系列的等级。

在TIO上不工作,因为TIO使用Mathematica内核(它不想打印任意的精度数字)

票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/150370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档