안녕하세요

[node.js] 1110 더하기 사이클 (자바스크립트) 문자열 단계 본문

백준 자바스크립트

[node.js] 1110 더하기 사이클 (자바스크립트) 문자열 단계

sakuraop 2022. 5. 31. 00:41

1110 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수입니다.

주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수(01)로 만듭니다.

각 자리의 숫자를 더합니다.

주어진 수의 가장 오른쪽 자리 수와 구한 합의 가장 오른쪽 자리 수를 이어 붙입니다.

 

26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다.

 

위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다.

N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오.

26

결과

4

 

제출한 답

const input = Number(require("fs").readFileSync("dev/stdin").toString());

let count = 0;
let startNumber = input;

while (true) {
  count++;
  let plusNum = (Math.floor(startNumber / 10) + (startNumber % 10)) % 10;
  let newNum = String(startNumber % 10) + String(plusNum);
  startNumber = newNum;


  if (startNumber == input) {
    console.log(count);
    break;
  }
}

 

  •   let plusNum = (Math.floor(startNumber / 10) + (startNumber % 10)) % 10;
    각 자리의 숫자를 더한 결과를 구합니다.
  •   let newNum = String(startNumber % 10) + String(plusNum);
    새로운 숫자를 구합니다.
  •   startNumber = newNum;
    새로운 숫자를 구하는 수식에 넣기 위해서 변수를 새로운 값으로 바꿉니다.