输入n个不超过30000的整数(n≤10)。然后求出每个数的数字和,再按每个数的数字和由小到大排列输出。

输入n个不超过30000的整数(n≤10)。然后求出每个数的数字和,再按每个数的数字和由小到大排列输出。

def numSum(x):
    s=0
    while x:
        s+=x%10
        x//=10
    return s

n=list(map(int,input().split()))
n.sort(key=numSum)
print(*n)

还可以更简单


n=input().split()
n.sort(key=lambda x:sum(map(int,x)))
print(*n)

继续简化

print(*sorted(input().split(),key=lambda x:sum(map(int,x))))
n = int(input())
numbers = []
for i in range(n):
    numbers.append(int(input()))

sums = []
for number in numbers:
    sums.append(sum(int(digit) for digit in str(number)))

for number, digit_sum in sorted(zip(numbers, sums), key=lambda x: x[1]):
    print(number)