본문 바로가기
CODING/BAEKJOON

[BAEKJOON] 1110번 더하기 사이클

by snow_white 2022. 1. 24.

주어진 수는 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

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net

 

댓글