4564 숫자 카드놀이

 

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

 

4564번: 숫자 카드놀이

문제 맨 앞자리에 앉은 상근이는 수업시간이 아무리 지루해도 딴짓을 할 수가 없다. 그런데 오늘은 너무 딴짓이 하고 싶다. 공책에 정인이에게 배운 숫자 카드놀이를 하려고 한다. 숫자 카드놀이를 하려면 먼저 자연수 S를 골라야 한다. 그 다음, 각 자리를 모두 곱하면서 한 자리 수가 나오기 전까지 계속해서 새로운 수를 만드는 게임이다. 예를 들어, 95로 시작한다면, 9 × 5 = 45를 얻게 된다. 45도 두 자리 이상이기 때문에, 4 × 5 = 20를 얻

www.acmicpc.net

 

이 문제는 n의 각 자리수끼리의 곱을 구해서 출력하다가, 한 자리 수가 나오면 끝내는 간단한 문제이다.

 

#include <stdio.h>
int main()
{
    int n,s=1,i,x=0;
    while(1) {
        scanf("%d", &n);
        if(!n) break;
        printf("%d ", n);
        while(n/10!=0) {
            for(i=100000; i>=1; i/=10) {
                if(n/i) x=1;
                if(x) s*=n/i;
                n-=(n/i)*i;
                if(i==1) i=0;
            }
            n=s;
            s=1;
            x=0;
            printf("%d ", n);
        }
        puts("");
    }
}

+ Recent posts