백준

1110번: 더하기 사이클

bingual 2022. 2. 15. 09:59
반응형

 

 

 

 

 

 

풀이

 

본문에 예제 식을 어떤방법으로 구현할지의 방법을 논하는 문제.

 

26을 입력받았을때 (26 % 10 * 10)을 하면 60이 나오고 (26 / 10 + 26 % 10)을 하게 되면 8이 나오므로 두값을 더하면 예제의 식으로 만들 수 있는 26의 새로운 수 68이 나오게 되고 그값은 다시 n이된뒤 이과정을 반복할때마다 카운트한다. 

 

(n / 10) + (n % 10)에 결과의 수가 10보다 크다면 10으로 나눠서 한자릿수로 만들어 줘야하기때문에 ((n / 10) + (n % 10) % 10)을한다.

 

 

 

 

 

자바

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int n = Integer.parseInt(br.readLine());
		int result = n;
		int cnt = 0;

		while (true) {
			n = ((n % 10) * 10) + (((n / 10) + (n % 10)) % 10);
			cnt++;

			if (result == n) {
				break;
			}
		}
		System.out.println(cnt);
	}
}

 

 

 

 

 

 

파이썬

n = int(input())
result = n
cnt = 0

while True:
    n = ((n % 10) * 10) + (((n // 10) + (n % 10)) % 10)
    cnt+=1

    if result == n:
        break
print(cnt)