더하기 사이클
09 June 2019
문제 : https://www.acmicpc.net/problem/1110
이번은 더하기 사이클을 연산하는 문제를 풀어보도록 하겠습니다.
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int firstValue = scanner.nextInt();
int front = firstValue / 10;
int tail = firstValue % 10;
int targetFront = front;
int targetTail = tail;
int ret = 0;
while (true) {
int tempTail = getTail(front, tail);
front = tail;
tail = tempTail;
ret++;
if (front == targetFront && tail == targetTail) {
break;
}
}
System.out.println(ret);
}
private static int getTail(int front, int tail) {
int value = front + tail;
return value % 10;
}
}
최초의 값을 받아 두자리인 경우 나누어서 몫은 첫번째 숫자, 나머지는 두번째 숫자로 설정해둡니다.문제에 나오는 규칙대로 두 값을 더하여 10으로 나눈 나머지는 다시 두번째 숫자, 기존에 두번째 숫자였던 값은 첫번째 숫자로 변경해줍니다.
해당 메서드를 반복한 값을 저장하여 출력해줍니다.