알고리즘/백준

[백준/C] 1110번: 더하기 사이클

이우열 2022. 6. 20. 22:48
728x90

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

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net


 

 


 

문제 분석

입력한 수의 각 자리수를 더한 뒤(10이 넘을 경우 일의 자리를 구함) 입력한 수의 일의 자리 수와 결합해 두 자리 수로 만든다.

이 방법을 반복하여 원래 입력한 수로 다시 돌아왔을 경우 과정을 몇 번 반복하는지 횟수를 출력한다.

 

코드 진행 방향

입력받은 수 a를 b에 저장한 뒤, b를 10으로 나눈 나머지를 temp에 저장하고 result는 각 자리수를 더한 값을 저장한다.

다른 변수 c에 (temp*10) + (result%10)를 저장한다.

b를 c로 바꾸어준 뒤 count를 늘려가면서 원래 입력받은 a와 c를 비교해 같아지면 반복문을 종료하고 count 값을 출력한다.

 


 

코드

더보기
#include <stdio.h>
int main(){
    int a, temp, result, b, c;
    int count = 0;
    
    scanf("%d", &a);
    b = a;
    
    do{
    	temp = b%10;
    	result = (b/10) + (b%10);
    	c = (temp*10) + (result%10);
    	b = c;
    	count++;
 	}while(a != c);
	
	printf("%d", count);
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

[백준/C] 10818번: 최소, 최대  (0) 2022.06.20
[백준/C] 11021번: A+B - 7  (0) 2022.06.20
[백준/C] 10952번: A+B - 5  (0) 2022.06.20
[백준/C] 2884번: 알람 시계  (0) 2022.06.14
[백준/C] 2588번: 곱셈  (0) 2022.06.14