AS 3数字和。命理

时间:2014-07-15 10:47:06

标签: actionscript-3 numbers digit

什么是在as3上找到数字和的最佳算法?例如,转换1999 = 1 + 9 + 9 + 9 = 28 = 2 + 8 = 10 = 1 + 0 = 1。 我在网上发现了这个,但它的数字是两位数。

 function sumDigits(number) {
    var remainder = number % 10;
    var sum = remainder;
    if(number >= 10) {
        var rest = Math.floor(number / 10);
        sum += sumDigits(rest);
    }
    return sum;}

1 个答案:

答案 0 :(得分:1)

就像将除数除以9得到的一样简单,并将0的结果取为9。

function sumDigits(num:int):int {
    if (num==0) return 0;
    var red:int=num % 9;
    if (red==0) return 9; else return red;
}

这个答案背后的逻辑是简单的数学。无论何时计算一个数字总和,您都会收到具有相同余数的值,除以9作为原始数字。而且由于你试图将总和减少到一个数字,你只能得到0-9作为答案,只有零的总和为0,因此你的函数应该返回一个从1到9的数字。这些数字是唯一的值模9,因此你可以得到原始数的模9并从中得到结果。