백준(C언어)/22년 7월

7월 11일(월)~7월 12일(화) - 3단계

C0MPAS 2022. 7. 14. 16:31

3단계 - 1110번https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

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

www.acmicpc.net

 

문제점

1. n을 활용해 바로 new_result 와의 동일 비교 힘듦

-> (c에서는  n -> middle -> middle과 new_result 비교)

 

풀이

#include <stdio.h>

int main(void)
{
	int n, middle;
	int count = 0;
	scanf("%d", &n);

	int new_result = n;

	while (1)
	{
		middle  = (n % 10)*10 + ((n / 10) + (n % 10))%10 ;
		n = middle;
		count++;

		if (middle == new_result)
		{
			break;
		}
	}

	printf("%d", count);
	return 0;
}

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