자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
N의 범위 : 100,000,000 이하의 자연수
//100,000,000은 9자리수
function solution(n) //213
{
let answer = 0;
while(n > 9){
answer += n % 10
n = Math.floor(n/10)
}
return answer + n;
}
풀이 2
function solution(n)
{
//n은 최대 9자리수까지 있을 수 있다.
//n의 자리수를 구하는 함수
let answer = 0;
const num = n.toString();
for(let i = 0; i < num.length; i++){
answer += parseInt(num[i]);
}
return answer;
}
자릿수 더하기 삽질1
눈물의 x꼬쇼
// 이거 이렇게 풀어보셨으면 중복되는 코드 합치는 작업하면 됐어쓸텐데~!!
function solution(n)
{
n >= 1;
n <= 100,000,000;
const hundredmillion =
Math.floor(n/100,000,000); //억
const tenmillion =
Math.floor((n-(hundredmillion*100,000,000))/10,000,000); //천만
const million =
Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000))/1,000,000); //백만
const hundredthousand =
Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
-(million*1,000,000))/100,000); //십만
const tenthousand =
Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
-(million*1,000,000)-(hundredthousand*100,000))/10,000); //만
const thousand =
Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
-(million*1,000,000)-(hundredthousand*100,000)
-(tenthousand*10,000))/1000); //천
const hundred =
Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
-(million*1,000,000)-(hundredthousand*100,000)
-(tenthousand*10,000)-(thousand*1,000))/100);
const ten =
Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
-(million*1,000,000)-(hundredthousand*100,000)
-(tenthousand*10,000)-(thousand*1,000)-(hundred*100))/10);
const one =
n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
-(million*1,000,000)-(hundredthousand*100,000)
-(tenthousand*10,000)-(thousand*1,000)-(hundred*100)-(ten*10);
const answer = hundredmillion + tenmillion + million + hundredthousand +
+ tenthousand + thousand + hundred + ten + one;
return answer;
}