본문 바로가기

알고리즘 문제풀이/JAVA 알고리즘 문제풀이

백준(BaekJoon) 1110번 While문_더하기 사이클

문제

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

 

1110번: 더하기 사이클

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

www.acmicpc.net


 
package baekjoon_4;
import java.util.Scanner;



public class While {

	public static void main(String[] args) {
		//get start number
		System.out.print("첫번째 숫자를 입력하세요:");
		Scanner input = new Scanner(System.in);
		int num0 = input.nextInt();
		int N = num0;
		
		while(N < 0 || N > 99) {
			System.out.print("첫번째 숫자를 다시 입력하세요:");
			num0 = input.nextInt();
			N = num0;
		}

//count the length of cycle
		int num1 = 0;
		int num2 = 0;
		int num3 = 0;
		int count = 0;
		while(N != num0 || count == 0) {
			count++;
			num1 = num0/10;
			num2 = num0%10;
			
			num3 = (num1 + num2)%10;
			num0 = num2*10 + num3;
		}
		
		//print the length of cycle
		System.out.println(count);
		
	}

}