백준 코드 공부/C언어

백준 1110 : 더하기 사이클 (C언어)

GUuu9 2021. 11. 20. 15:18
문제
1110번: 더하기 사이클 (acmicpc.net)

#include<stdio.h>
int main() {
    int a, b=0, c=0, d=0;
    scanf("%d",&a);
    d=a;
    while(1){
        b++;
        c=(a/10)+(a%10);
        a=((a%10)*10)+(c%10);
        if(d==a)
        break;
    }
    printf("%d", b);
}

처음 값을 입력 받으면 10의 자리와 1의 자리 수를 더한 후 나온 결과 값을 기존 1의 자리였던 값이 10의 자리로 이동하고, 결과 값의 1의 자리값이 1의 자리로 가게된다.

처음 값을 a로 입력 받는다. 반복된 연산을 통해 다시 원래의 a 값으로 돌아오는가 확인하기 위해 d에다가 a 값을 저장한다. b값은 몇번의 시행 끝에 기존의 a값으로 돌아왔는지 확인하기 위한 변수이다.

C의 경우 a값의 10의자리와 1의 자리를 더한 값이며 이후 a값은 a의 1의 자리를 10의자리로 올린 값과, c의 1의 자리를 더한 값을 저장하여 반복한다.

Git
BaekJoon-Study/1110.c at C · GUuu9/BaekJoon-Study (github.com)