티스토리 뷰

728x90

문제

https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

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

www.acmicpc.net

 

풀이 및 소스코드

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 number = Integer.parseInt(br.readLine());
		if(number<10) {
			number*=10;
		}
		int origin = number;
		int res = 0;
		
		while(true) {
			int tmp = 0;
			int numberright, sumright;
			res ++;
			
			tmp += number%10;
			number /=10;
			numberright = tmp; // 가장 오른쪽 자리 수
			
			while(number!=0) {
				tmp += number%10;
				number = number/10;
			}
			
			sumright = tmp%10;
			
			tmp = numberright*10 + sumright;
			
			if(tmp == origin) {
				break;
			}
			number = tmp;
			//System.out.println(number);
		}
		System.out.println(res);
	}
}
반응형