0

我在其他地方遇到了这个代码段。它只是将给定数字中的所有数字相加:

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

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

谢谢!

4

1 回答 1

9

你应该明白两点:

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

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

于 2016-07-27T09:39:02.243 回答