n이 주어지면 한 자리로 쪼개서 더한다.
쪼개서 더한 값이 10 이상일 경우, 다시 한 자리로 쪼개서 더하기!!
function digital_root(n) {
// 숫자 문자열로 바꾼 뒤, 하나씩 쪼개기
let numsToString = String(n);
numsToString = numsToString.split('');
// console.log(numsToString,'split')
//쪼갠 문자열배열을 숫자 배열로 변환
// let numArr = [];
let stringToNum = numsToString.map(i => Number(i));
let result = stringToNum.reduce((num, cur) => num+=cur);
// console.log(numsToString.length,'length')
if(result < 10){
return result;
}
return digital_root(result);
}
function digital_root(n) {
// 문자열 => 배열 => 숫자 배열화
let numArr = String(n).split('').map(i=> Number(i));
// 숫자 배열 한차례씩 돌면서 이전값 + 현재값
let result = numArr.reduce((num, cur) => num+=cur);
// 더한 값이 10보다 적으면 return , 아니면 반복
return result < 10 ? result : digital_root(result);
}
digital_root(1234)