添加数字(需要代码说明)

Fie*_*nix 0 python algorithm sum-of-digits

我在其他地方遇到过这段代码.它只是添加给定数字中的所有数字:

def sumDigits(n):
    sum = 0
    while n > 0:
        sum += n % 10
        n //= 10
    return sum
Run Code Online (Sandbox Code Playgroud)

问题是,我根本没有得到它背后的逻辑.特别是,我没有完全得到循环的作用:

   while n > 0:
        sum += n % 10  # Why n % 10?
        n //= 10       # Again, not sure why we divide the number by 10
Run Code Online (Sandbox Code Playgroud)

有人可以给我一个算法如何工作的例子吗?

谢谢!

Oha*_*tan 9

你应该明白两件事:

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

因此,如果您重复该过程,您将获得所需的结果