주어진 수는 99보다 작거나 같은 수이므로 최대 두 자릿수의 정수이다.
1. 십의 자리 수는 10으로 나누었을 때의 몫이고, (ex. 55일 때 십의 자리 수는 55/10으로 몫 5)
2. 일의 자리 수는 10으로 나누었을 때의 나머지이다. (ex. 55일 때 십의 자리 수는 55%10으로 나머지5)
3. 다음 생성되는 수는 (나머지)와 (몫과 나머지를 더한 수의 일의 자리 수)를 이어 붙인 수 (ex. 5+0로 50)
위의 과정 반복
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int num=N, cycle=0;
while(true) {
if(cycle==0)
num=N;
int remainder = num%10;
int quotient = num/10;
int sum = remainder + quotient;
num = remainder*10 + (sum%10);
cycle++;
if(num == N)
break;
}
System.out.println(cycle);
}
}
[출처]
https://www.acmicpc.net/problem/1110
'CODING > BAEKJOON' 카테고리의 다른 글
[BAEKJOON] 1145번 적어도 대부분의 배수 (0) | 2022.01.26 |
---|---|
[BAEKJOON] 2615번 오목 (0) | 2022.01.25 |
[BAEKJOON] 4344번 평균은 넘겠지 (0) | 2022.01.24 |
[BAEKJOON] 2167번 2차원 배열의 합 (0) | 2022.01.24 |
[BAEKJOON] 2851번 슈퍼 마리오 (0) | 2022.01.24 |
댓글