ββ λ°±μ€ 1110 javascript (node.js) νμ΄
while문 - (3)
π‘λ¬Έμ
0λ³΄λ€ ν¬κ±°λ κ°κ³ , 99λ³΄λ€ μκ±°λ κ°μ μ μκ° μ£Όμ΄μ§ λ λ€μκ³Ό κ°μ μ°μ°μ ν μ μλ€. λ¨Όμ μ£Όμ΄μ§ μκ° 10λ³΄λ€ μλ€λ©΄ μμ 0μ λΆμ¬ λ μ리 μλ‘ λ§λ€κ³ , κ° μ리μ μ«μλ₯Ό λνλ€. κ·Έ λ€μ, μ£Όμ΄μ§ μμ κ°μ₯ μ€λ₯Έμͺ½ μ리 μμ μμμ ꡬν ν©μ κ°μ₯ μ€λ₯Έμͺ½ μ리 μλ₯Ό μ΄μ΄ λΆμ΄λ©΄ μλ‘μ΄ μλ₯Ό λ§λ€ μ μλ€. λ€μ μλ₯Ό 보μ.
26λΆν° μμνλ€. 2+6 = 8μ΄λ€. μλ‘μ΄ μλ 68μ΄λ€. 6+8 = 14μ΄λ€. μλ‘μ΄ μλ 84μ΄λ€. 8+4 = 12μ΄λ€. μλ‘μ΄ μλ 42μ΄λ€. 4+2 = 6μ΄λ€. μλ‘μ΄ μλ 26μ΄λ€.
μμ μλ 4λ²λ§μ μλ μλ‘ λμμ¬ μ μλ€. λ°λΌμ 26μ μ¬μ΄ν΄μ κΈΈμ΄λ 4μ΄λ€.
Nμ΄ μ£Όμ΄μ‘μ λ, Nμ μ¬μ΄ν΄μ κΈΈμ΄λ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
πμ λ ₯
첫째 μ€μ Nμ΄ μ£Όμ΄μ§λ€. Nμ 0λ³΄λ€ ν¬κ±°λ κ°κ³ , 99λ³΄λ€ μκ±°λ κ°μ μ μμ΄λ€.
πμΆλ ₯
첫째 μ€μ Nμ μ¬μ΄ν΄ κΈΈμ΄λ₯Ό μΆλ ₯νλ€.
μμ μ λ ₯
26
μμ μΆλ ₯
4
2+6 = 8 ---> 68
6+8 = 14 ---> 84
8+4 = 12 ---> 42
4+2 = 6 ---> 26
< μ½λ >
let input = Number(require('fs').readFileSync('/dev/stdin').toString());
let num = input;
let sum;
let i = 0;
while (true) {
i++;
sum = Math.floor(num / 10) + num % 10;
num = (num % 10) * 10 + sum % 10;
if (input === num) {
break;
}
}
console.log(i);
inputμ Number()μμ λ£κ³ , κ·Έκ²μ inputμ΄λΌλ λ³μλ‘ μ μ₯νκ³ , num = input μΌλ‘ μ§μ ν΄μ€λ€.
while(true) - if - break λ¬Έμ μ¬μ©ν΄μ
쑰건μ λ§μ‘±νλ©΄ whileλ¬Έμ λ²μ΄λλλ‘ νλ€.
i=0μμ i++λ₯Ό λ¨Όμ ν΄μ£Όκ³ (μΉ΄μ΄νΈ)
sum = μμμ리 + μΌμμ리 μ΄λ―λ‘
μμμ리 = floor(num/10)
μΌμμ리 = num % 10
numμ (μ¦, μλ‘ κ°±μ λ numκ°) μΌμμ리 * 10 + sumμ μΌμμ리 μ΄κ³ ,
input === numμ΄ λλ©΄ breakλ‘ whileμ λΉ μ Έλμ¨λ€.
β νλ Έλ μ½λλ€
#1. Reference Error
let input = require('fs').readFileSync('/dev/stdin').toString();
let num = Number(input);
let sum;
let cnt = 0;
while(True){
cnt++;
sum = Math.floor(num/10) + num%10; // μμμ리 + μΌμμ리
num = (num%10)*10 + sum%10;
if(num === input) break;
}
console.log(cnt);
#2. Syntax Error
let input = Number(require('fs').readFileSync('/dev/stdin').toString());
let num = input;
let sum;
let cnt = 0;
while(True){
cnt++;
sum = Math.floor(num / 10) + num % 10;
num = (num % 10) * 10 + sum % 10;
if(input === num) {
break;
}
console.log(cnt);