数字中的数字相加(需要代码解释)
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
有人能给我提供一个算法如何工作的例子吗?
谢谢!
你应该明白两件事:
n % 10
给你一个数字最右边的数字。例如:123 % 10 = 3
n // 10
删除数字最右边的数字。例如:123 // 10 = 12
所以如果你重复这个过程你会得到想要的结果
我在别处看到过这个代码段。它只是将给定数字中的所有数字相加:
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
有人能给我提供一个算法如何工作的例子吗?
谢谢!
你应该明白两件事:
n % 10
给你一个数字最右边的数字。例如:123 % 10 = 3
n // 10
删除数字最右边的数字。例如:123 // 10 = 12
所以如果你重复这个过程你会得到想要的结果