什么是在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;}
答案 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并从中得到结果。