数字中的数字相加(需要代码解释)

Adding Digits in a Number (Need Code Explanation)

我在别处看到过这个代码段。它只是将给定数字中的所有数字相加:

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

有人能给我提供一个算法如何工作的例子吗?

谢谢!

你应该明白两件事:

  1. n % 10 给你一个数字最右边的数字。例如:123 % 10 = 3
  2. n // 10 删除数字最右边的数字。例如:123 // 10 = 12

所以如果你重复这个过程你会得到想要的结果