Cоздать функцию цифрового корня

206
24 февраля 2019, 20:00
function digital_root(n) {
  var arrString = String(n).split("");
  console.log(arrString);
  var sum = 0;
  for(var s=0; s<arrString.length; s++){
    sum += +arrString[s];
  }
  console.log(sum);
}

Допустим n=16

//digital_root(16) (1+6) -> 7.

Но что делать если n больше чем 2 знака:

n=456 -> (4+5+6)=15 -> (1+5)=6;

Суть вопроса: как мне переделать код выше, чтобы он мог найти решение с n>2 знаков. Сделать это через цикл или как?

Answer 1

function digital_root(n) {return (n==0) ? 0 : 1+(n-1)%9;} 
 
console.log("digital_root(16)=" + digital_root(16)); 
console.log("digital_root(456)=" + digital_root(456)); 
console.log("digital_root(0)=" + digital_root(0));

READ ALSO
Как вставить субтитры в mediaelement.js?

Как вставить субтитры в mediaelement.js?

Подскажите пожалуйста как вставить субтитры в видео с использованием mediaelementjs?

222
Что возвращает данная функция в JS?

Что возвращает данная функция в JS?

Разбираюсь в opensource проекте и вновь возник непонятный моментЧто возвращает функция? Что данный синтаксис в себе подразумевает?

191
Как спарсить информацию с etherscan.io?

Как спарсить информацию с etherscan.io?

Есть сайт на чистом htmlНужно на него вывести значения отсюда

208