1012 数字分类

题目链接: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='')

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值