PAT 乙级 1012 数字分类

该Python程序接收一系列正整数,对它们进行分类并计算特定属性:A1是能被5整除的偶数之和;A2是被5除后余1的数字交错求和;A3是被5除后余2的数字个数;A4是被5除后余3的数字的平均数;A5是被5除后余4的最大数字。程序首先检查输入,然后根据除5的余数进行计算,最后输出结果。
摘要由CSDN通过智能技术生成

给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:

  • A1​ = 能被 5 整除的数字中所有偶数的和;
  • A2​ = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1​−n2​+n3​−n4​⋯;
  • A3​ = 被 5 除后余 2 的数字的个数;
  • A4​ = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
  • A5​ = 被 5 除后余 4 的数字中最大数字。

Python

num = list(map(int,input().split()))
a = [0] * 5
cnt_a1 = 0
sum_a3 = 0
cnt_a3 = 0

if len(num) > 1:
    for n in num[1:]:
        if n % 10 == 0:
            a[0] += n
        elif n % 5 == 1:
            a[1] += n * pow(-1,cnt_a1)
            cnt_a1 += 1
        elif n % 5 == 2:
            a[2] += 1
        elif n % 5 == 3:
            sum_a3 += n
            cnt_a3 += 1
        elif n % 5 == 4:
            if n > a[4]:
                a[4] = n
    if cnt_a3:
        a[3] = int((sum_a3 / cnt_a3) * 10 + 0.5) / 10

    for i in range(5):
        if a[i] == 0:
            a[i] = 'N'
    if a[1] == 'N' and cnt_a1 != 0:
        a[1] = 0
    print(' '.join(map(str,a)))
else:
    print('N N N N N')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值