본문 바로가기
카테고리 없음

#1110: 더하기 사이클

by 오젼 2021. 1. 4.

 ".... 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, ...."

이것 때문에 처음에 문자열로 받아서 진행했었다. 근데 생각해보니까 그냥 정수로 받으면 됐었다..

어차피 /10 하면 알아서 한 자리 수의 몫은 0이 되기 때문이다ㅠㅠ

암튼 다시 돌아와서 n을 받아서 n을 업데이트 시키면서 while문을 돌리는데, 이 때 조건이 n != (처음 시작값)이 되어야 했다. 그럼 맨 처음부터 실행될 수 없으니, tmp에 처음 n을 저장시켜 두고, do while(n!=tmp)를 이용하여 진행했다.

#pragma warning(disable:4996)
#include<stdio.h>
int main() {
	int n, tmp, i = 0;
	
	scanf("%d", &n);
	tmp = n;
	
	do {
		n = ((n % 10) * 10) + (((n / 10) + (n % 10)) % 10);
		i++;
	} while (n != tmp);

	printf("%d\n", i);
	return 0;
}

댓글