解题思路:将100万转换为7进制数,数位之和就是分成的份数
num = 100_0000
sum = 0
while num > 0:remainder = num % 7num = num // 7sum += remainder
print(sum)
代码来自题目题解
num对7进行取余,取值范围理应是[0,1,2,3,4,5,6]
但是对于题目给定的捐赠金额实际上并不会出现6这种情况
因为题目肯定有解,有解说明对于题目给出的捐赠金额能转换成相应对的7进制
这个python代码的作用仅仅只是计算捐赠金额转换成七进制后数位之和(也就是分成的份数),捐赠金额是题目给的,必满足题目中的三个条件。
其实只要满足了第二个条件,第三个条件就可以忽略,因为转换成7进制是唯一的,数位之和,也就是分成的份数也是唯一的。
把题目第二个条件(相同金额的份数不能超过5份)改成小于7的任何数,都能用上面的代码得出答案,因为捐赠金额都可以转换成唯一的7进制,并且第三个条件就可以忽略。