2

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

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

但我知道使用 mod10、mod 100 等可以找到给定数字的数字。所以我认为有另一种方法来构造函数,而无需来回整数转换。有任何想法吗?

4

1 回答 1

1

此处以 Javascript 显示:http: //jsfiddle.net/bhQLa/

使用单独打破数字

// 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;
}
// ---

然后总结它们。首先将基数增加到最大值。然后在抓取数字后将基数递减(num - (num % base)) / base。不要忘记减少您的工作编号,然后是基数。

于 2013-06-09T01:22:26.567 回答