每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。
有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。
每组输出结果占一行。如果输入的大写字母都在集合{A,B,C,D,F}中,则输出对应的平均绩点,结果保留两位小数。否则,输出“Unknown”。
样例输入
A B C D F
B F F C C A
D C E F
样例输出
2.00
1.83
Unknown
代码(python)
s=["A","B","C","D","F"]
s_map=[4,3,2,1,0]
while True:
try:
num_sum=0
input_list=input().split(" ")
for i in range(len(input_list)):
if input_list[i] not in s:
print("Unknown")
break
else:
num_sum=num_sum+s_map[s.index(input_list[i])]
if i ==len(input_list)-1:
print('%.2f'%(num_sum/len(input_list)))
except(Exception, BaseException) as e:
# print(e)
break
小明很喜欢玩积木。一天,他把许多积木块组成了好多高度不同的堆,每一堆都是一个摞一个的形式。然而此时,他又想把这些积木堆变成高度相同的。但是他很懒,他想移动最少的积木块来实现这一目标,你能帮助他吗?
输入包含多组测试样例。每组测试样例包含一个正整数n,表示小明已经堆好的积木堆的个数。
接着下一行是n个正整数,表示每一个积木堆的高度h,每块积木高度为1。其中1<=n<=50,1<=h<=100。
测试数据保证积木总数能被积木堆数整除。
当n=0时,输入结束。
对于每一组数据,输出将积木堆变成相同高度需要移动的最少积木块的数量。
在每组输出结果的下面都输出一个空行。
样例输入
6
5 2 4 1 7 5
0
样例输出
5
代码
while True:
try:
num=input()
if int(num) == 0:
break
num_list=input().split()
sum_num=0
for i in range(int(num)):
sum_num=sum_num+int(num_list[i])
mean_num=sum_num/len(num_list)
res=0
for i in range(len(num_list)):
res=res+abs(int(num_list[i])-mean_num)
print(int(res/2))
print(" ")
except(Exception,Baseexception) as e:
#print(e)
break