1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
[문제]
0 ≤ N ≤ 99 조건을 만족하는 정수 N이 주어졌을 때, 각 자리의 숫자를 더하고 그 다음, 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙여 새로운 수를 만든 후 이 과정을 반복한다. 이 때, 원래 수로 돌아오는 동안 몇 번의 사이클이 필요한지 사이클의 길이를 구하는 프로그램 작성
<4단계> while문
<알고리즘 분류> 수학, 구현
[input]
첫째 줄에 N 입력받기 (0 ≤ N ≤ 99)
[output]
첫째 줄에 N의 사이클의 길이 print




[풀이 방법]
-
0과 99 사이의 정수 N 입력받기 / 변수 a에 N 복사
-
각 자리의 수의 합 구하여 변수 b에 저장
-
a의 일의 자리 수가 십의 자리 수, b의 일의 자리 수가 일의 자리 수인 변수 c 생성
-
c가 N이 될 때까지 2-3번 과정 반복 / cycle 증가
-
사이클 길이 cycle print
실패 코드

- 0을 입력한 경우 while문에 들어가지 못해 cycle이 0으로 출력되어 옳지 않은 결과 얻어서 틀림
성공 코드

- 0의 경우 cycle 값을 1로 출력받기 위해 while문을 무한루프로 수정한 후, if문을 추가함.
'Android ᙏ̤̫͚ > 차근차근 JAVA' 카테고리의 다른 글
[백준 2562번] 최댓값 (0) | 2021.01.28 |
---|---|
[백준 10818번] 최소, 최대 (0) | 2021.01.28 |
[백준 10951번] A + B - 4 (0) | 2021.01.27 |
[백준 10952번] A + B - 5 (0) | 2021.01.27 |
[백준 10871번] X보다 작은 수 (0) | 2021.01.26 |