我在其他地方遇到过这段代码。它只是添加给定数字中的所有数字:
def sumDigits(n):
sum = 0
while n > 0:
sum += n % 10
n //= 10
return sum
问题是,我根本没有得到它背后的逻辑。特别是,我没有完全得到循环的作用:
while n > 0:
sum += n % 10 # Why n % 10?
n //= 10 # Again, not sure why we divide the number by 10
有人可以向我提供算法如何运作的示例吗?
谢谢!
答案 0 :(得分:9)
你应该理解两件事:
n % 10
为您提供最右边的数字。例如:123 % 10 = 3
n // 10
删除数字的最右边数字。例如:123 // 10 = 12
因此,如果您重复该过程,您将获得所需的结果