백준 1110 더하기 사이클

백준 1110 더하기 사이클

문제: 특정한 방법으로 연산을 해서 나오는 사이클을 구하는 문제.

더 자세한 문제는 글의 하단에 나오는 백준 사이트의 문제 참고.

1110번 문제에 주어지는 입력 및 예시

0보다 크거나 같고 99보다 작거나 같은 정수를 입력으로 받습니다.

예제)

--> 26을 입력받으면 4를 출력합니다.

--> 55를 입력받으면 3을 출력합니다.

--> 1을 입력받으면 60을 출력합니다.

코드

1110번 문제의 C코드는 다음과 같습니다.

#include<stdio.h>
int main(){
	int n,i,j,k,num=0;
	scanf("%d",&n);
	k=n;//나중에 돌아왔을때 체크하기 위해. 
	do{
		i=n/10;//앞.
		j=n%10;//뒤.
		i=(i+j)%10;
		n=i+j*10;
		num++;
	}while(k!=n);//k와 n이 같으면 빠져나옴. 
	printf("%d",num);
}

실행

26을 입력받았을 때.

55를 입력받았을 때.

1을 입력받았을 때.

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

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 =

www.acmicpc.net

'C' 카테고리의 다른 글

백준 5543 상근날드  (0) 2020.03.26
백준 10039 평균점수  (0) 2020.03.26
백준 14681 사분면 고르기  (0) 2020.03.25
백준 2798번 블랙잭  (0) 2019.09.30
백준 10950 A+B - 3번째  (0) 2019.09.27

Designed by JB FACTORY