백준 1110번은 특이한 연산법을 거쳐서 원래의 수가 다시 원래대로 돌아오는 사이클을 조사하는 프로그램을 짜는 문제이다.
특이한 연산법이란 다음과 같다:
이다.
이 과정을 코드로 바꾸면 다음과 같다:
#include <stdio.h>
int main(void) {
int num;
scanf("%d", &num);
int x, y; //변수 x는 10의 자리, y는 1의 자리
int i = 0;
int origin = num; //맨 처음 숫자를 저장해놓음
for (;;) {
i++;
if (num < 10) { //10보다 작으면 x는 0, y는 그대로
x = 0;
y = num;
}
else { //아니라면 몫과 나머지를 구해서 저장
x = num / 10;
y = num % 10;
}
int new_num = x + y;
num = (y * 10) + (new_num % 10);
if (num == origin) { //연산 후 맞는지 비교
break;
}
}
printf("%d", i);
return 0;
}