输入 int 类型范围内的 N个非负整数,要求按各个整数的各数位上数字的平方和从小大排序。例如,三个整数9、31、14各数位上数字的平方和分别为81、10、17,则排序结果为31、14、9。 要求至少使用一个自定义函数。
时间: 2024-03-17 13:45:48 浏览: 93
python 输入非负整数n计算n! 示例
好的,可以使用以下代码实现:
```python
def get_sum_of_squares(num):
"""
计算一个数各个数位上的数字的平方和
"""
res = 0
while num:
res += (num % 10) ** 2
num //= 10
return res
def sort_numbers_by_sum_of_squares(numbers):
"""
按各个整数的各数位上数字的平方和从小到大排序
"""
return sorted(numbers, key=get_sum_of_squares)
# 测试代码
if __name__ == '__main__':
numbers = [9, 31, 14]
print(sort_numbers_by_sum_of_squares(numbers))
```
其中,`get_sum_of_squares` 函数用于计算一个数各个数位上的数字的平方和,`sort_numbers_by_sum_of_squares` 函数用于按各个整数的各数位上数字的平方和从小到大排序。在测试代码中,我们对输入的 `[9, 31, 14]` 进行排序,并输出结果 `[31, 14, 9]`。
阅读全文