js 數字和數字根的和實現方法
阿新 • • 發佈:2018-12-10
數字根是數字中所有數字的遞迴和。給定n,取n的數字的和,如果該值有兩位數字,繼續以這種方式減少,直到產生一位數。這隻適用於自然數。
實現邏輯:
digital_root(16)
=> 1 + 6
=> 7
digital_root(942)
=> 9 + 4 + 2
=> 15 ...
=> 1 + 5
=> 6
digital_root(132189)
=> 1 + 3 + 2 + 1 + 8 + 9
=> 24 ...
=> 2 + 4
=> 6
digital_root(493193)
=> 4 + 9 + 3 + 1 + 9 + 3
=> 29 ...
=> 2 + 9
=> 11 ...
=> 1 + 1
=> 2
實現程式碼一:
function digital_root(n) {
return (n - 1) % 9 + 1;
}
實現程式碼二:
function digital_root(n) {
if (n < 10) return n;
return digital_root(
n.toString().split('').reduce(function(acc, d) { return acc + +d; }, 0 ));
}
實現程式碼三:
function digital_root(n) {
if (n < 10)
return n;
for (var sum = 0, i = 0, n = String(n); i < n.length; i++)
sum += Number(n[i]);
return digital_root(sum);
}
實現程式碼四:
function digital_root(n) {
let newn = 0;
if(n >= 10){
for(let i=0;i< n.toString().length;i++){
newn += Number (n.toString()[i]);
}
}
return newn >= 10?digital_root(newn):newn;
}