728x90
풀이
원래의 수로 돌아올 때까지
일의 자리에 10을 곱한 값과, 십의자리/일의자리를 쪼개서 더한 값을 10으로 나누었을 때의 나머지를 더하면 된다.
result = ((N%10)*10) + (((N/10) + (N%10))%10);
소스코드
#include <stdio.h>
int main() {
int N, circle = 0, result;
scanf("%d", &N);
int save_N = N;
while (1) {
result = ((N%10)*10) + (((N/10) + (N%10))%10);
circle++;
if (result == save_N)
break;
N = result;
}
printf("%d", circle);
}
출처
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 4673] 셀프 넘버 [C] (0) | 2021.07.18 |
---|---|
[백준 15596] 정수 N개의 합 [C] (0) | 2021.07.18 |
[백준 11022] A + B - 8 [C] (0) | 2021.07.18 |
[백준 11021] A + B - 7 [C] (0) | 2021.07.18 |
[백준 15552] 빠른 A+B [C] (0) | 2021.07.18 |