hwooo
(C) 1110번: 더하기 사이클 본문
https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net

풀이
한 자릿수일 경우 십의 자리를 계산하기 위해 n_new/10 을 사용.각 자릿수의 합이 2자리가 되는 경우 1의 자리만 추출하기 위해 sum%10 사용.코드
#include <stdio.h>
int main() {
int n, n_new, n_1, sum, cnt = 0;
scanf("%d", &n);
n_new = n;
while (1) {
n_1 = n_new % 10; // 1의 자리 추출
sum = n_new / 10 + n_1; // 각 자리 숫자의 합
n_new = n_1 * 10 + sum % 10; // 새로운 수
cnt++; // 사이클 길이
if (n_new == n) break;
}
printf("%d", cnt);
}
'Study > Algorithm' 카테고리의 다른 글
(C) 2562번: 최댓값 (0) | 2022.06.06 |
---|---|
(C) 10818번: 최소, 최대 (0) | 2022.06.06 |
(C) 10951번: A+B - 4 (0) | 2022.06.05 |
(C) 10952번: A+B - 5 (0) | 2022.06.05 |
(C) 10871번: X보다 작은 수 (0) | 2022.06.05 |