题目链接:1012 数字分类
1、这个题目有一个测试点比较坑,那就是A2交错求和的过程中可能会等于0,也就是说不能根据结果是否是0来判断A2是否存在。
2、本来可以直接根据cnt[n%5]+=1来进行计数,但有一个点很坑,那就是n必须为偶数才计数,奇数不进行计数。
3、善于利用一个数学公式:1*-1 = -1,-1*-1等于1,只要设置一个操作数为1,然后不断乘以-1就可以做到交替的加和减。
4、如果不知道上面的公式,那么根据数量的奇偶进行加或者减也是一样的效果。
n = list(map(int,input().split()))
cnt = [0 for i in range(5)]
n = n[1:]
A = [0 for i in range(5)]
oper = 1
for num in n:
if num % 10 == 0:
A[0] += num
cnt[num % 5] += 1
elif num % 5 == 1:
A[1] += num * oper
oper *= -1
cnt[num % 5] += 1
# if cnt[num % 5] % 2 == 1:
# A[1] += num
# else:
# A[1] -= num
elif num % 5 == 2:
A[2] += 1
cnt[num % 5] += 1
elif num % 5 == 3:
A[3] += num
cnt[num % 5] += 1
elif num % 5 == 4:
A[4] = max(A[4],num)
cnt[num % 5] += 1
for i in range(5):
if i != 0:
print(' ',end='')
if cnt[i] == 0:
print('N',end='')
else:
if i == 3:
print("{:.1f}".format(float(A[3])/cnt[3]),end='')
else:
print("{}".format(A[i]),end='')