[ 백준 10871번 ] 더하기 사이클
2021. 11. 8. 15:35ㆍ백준/단계별 문제
백준 10871번 / 4단계 / 더하기 사이클
문제 풀이
1. 십의 자리 변수 a, 일의 자리 변수 b, 새로운 일의 자리 변수 c, 원래 값 비교를 위한 hub변수, cycle 변수 선언
2. 변수 a는 정수형 변수이기 때문에 변수 hub를 10으로 나누면 몫만 저장이 된다.
ex) 26 / 10 = 2 a = 2
3. 변수 b는 나머지 연산자를 이용해 변수 hub를 10으로 나눈 나머지 값이 저장이 된다.
ex) 26 % 10 = 6 b = 6
4. 변수 c는 변수 a와 변수 b의 저장된 값을 더한 뒤 나머지 연산자를 이용해 새로운 일의 자리 수를 만든다
ex) a(2) + b(6) = 8 % 10 c = 8
5. 십의 자리 변수 a는 일의 자리 변수 b의 값으로 바뀌고 일의 자리 변수 b는 새로운 일의 자리 변수 c로 저장이 되고 다시 숫자를 합쳐준다. 그리고 사이클 길이 변수 cycle에 1을 더해준다.
ex) a = b(6), b = c(8) | a(6) * 10 + b(8) = 68
6. 이렇게 계속 반복을 하면서 hub랑 원래 숫자 n 이랑 다시 같아지면 반복문을 종료하고 변수 cycle을 출력한다.
코드
#include <stdio.h>
int main() {
int a = 0, b = 0, c = 0, cycle = 0;
int hub = 0;
int n;
scanf("%d", &n);
hub = n;
while(1) {
a = hub / 10;
b = hub % 10;
c = ( a + b ) % 10;
a = b;
b = c;
hub = a * 10 + b;
cycle++;
if ( hub == n ) break;
}
printf("%d", cycle);
}
'백준 > 단계별 문제' 카테고리의 다른 글
[ 백준 2562번 ] 최댓값 (0) | 2021.11.09 |
---|---|
[ 백준 10818번 ] 최소, 최대 (0) | 2021.11.09 |
[ 백준 10871번 ] X보다 작은 수 (0) | 2021.11.08 |
[ 백준 2439번 ] 별찍기 2 (0) | 2021.11.08 |
[ 백준 2438번 ] 별찍기 1 (0) | 2021.11.08 |