알고리즘

각 자릿수 합

              2017. 9. 1. 15:49

각 자릿수 합을 구하는 것은 어렵지 않으나, 각 자릿수의 합을 10보다 작을때까지 더하는 문제는 재귀호출을 통해서 보통 푼다.


1
2
3
4
5
6
7
8
9
10
11
// 내가 푼 방식
function digital_root(n) {
  var value = 0;
  while(n !== 0) value += n % 10, n = parseInt(n / 10);
  return value < 10 ? value : digital_root(value);
}
 
// 더 좋은 방식!!
function best(n) {
  return (n-1) % 9 + 1;
}
cs


더 좋은 방식의 설명은 http://www.sjsu.edu/faculty/watkins/Digitsum00.htm 여기 있다.