Function 正整数和的模函数?

Function 正整数和的模函数?,function,python-3.x,module,Function,Python 3.x,Module,我创建了一个函数,对给定正整数的位数求和: def digit_sum(n): tot = 0 for i in str(n): tot += int(i) return tot 但是我知道使用mod10、mod100等可以找到给定数字的数字。所以我认为有另一种方法可以在不进行来回整数转换的情况下构造函数。有什么想法吗?在Javascript中显示: 使用将数字分开 // Loop through the digits without using str

我创建了一个函数,对给定正整数的位数求和:

def digit_sum(n):
    tot = 0
    for i in str(n):
        tot += int(i)
    return tot

但是我知道使用mod10、mod100等可以找到给定数字的数字。所以我认为有另一种方法可以在不进行来回整数转换的情况下构造函数。有什么想法吗?

在Javascript中显示:

使用将数字分开

// Loop through the digits without using string
var base = 1;
while (base * 10 <= num) base *= 10;
while (base >= 1) {
    var digit = (num - (num % base)) / base;
    digits.push(digit);
    num -= digit * base;
    base /= 10;
}
// ---
//在不使用字符串的情况下循环数字
var基数=1;
而(基数*10=1){
变量位=(num-(num%base))/base;
数字。按(数字);
num-=位数*基数;
基数/=10;
}
// ---

然后总结一下。首先,将基数增加到最大值。然后在抓取数字后,将基数减少
(num-(num%base))/base
。别忘了减少你的工作数,然后是基数。

可能的重复@maxwell我知道了它的逻辑。在python中,我认为它是这样的定义数字总和(n):tot=0,而n>9:tot+=n%10n=n//10tot=tot+n返回tot