如何将一个数字的位数加起来[关闭]。

问题描述 投票:0回答:1
def get_sum_of_digits(num):
    sum = 0
    while (num > 0):
        last_digit = num % 10
        sum = sum + last_digit
        num = num // 10
    return sum

user_num = int(input("Enter your Number : "))
total = get_sum_of_digits(user_num)
print("The total sum of digits is" , total)

我无法理解这段代码的加法(数字的数字之和).请解释一下.谢谢。

python input while-loop sum
1个回答
1
投票

你处理这个问题的方法有点奇怪,但尽管如此,它还是可以工作,即使它比较慢。

解释。

解释: % 运算符返回ur数字的1位的数字,并将其加到ur数字的初始值上。sum 同样的过程持续了n次,直到数值为 num<0

一个更简单的方法是将整数转化为一个列表,然后将其相加.%函数给出了除以10后的余数.所以59%10=9:

In [6]: def sum_of_digits(num): 
   ...:     num_lst = [int(i) for i in str(num)]   # list comprehension
   ...:     return sum(num_lst) 
   ...:                                                                         

In [7]: sum_of_digits(123)                                                      
Out[7]: 6


0
投票

%函数给出了除以10后的余数,所以59%10=9. 因此,它给出了数字的最后一位数字。我们将最后一位数字加到我们的和中。/运算符返回除法后的整数值,因此,59/10=5,所以我们将最后一位数字加到我们的和中。因此,59/10=5,所以最后一位数字被删除。我们继续这个过程,直到没有剩余的数字,得到所有数字的和。

© www.soinside.com 2019 - 2024. All rights reserved.