整数分解

/*整数分解
    1.由x的位数获得 mask 的值
    2. x 整除 mask 获得首位 
    3.x对mask取余(即剔除首位)
    4. mask除10
    5. 回到第2步 直到 x > 0 

*/
#include 
int main()
{
    int x;
    scanf("%d",&x);
    int t = x;
    int mask = 1;
    while( t > 9 ){
        t /= 10;
        mask *= 10;
    }
    //printf("mask = %d\n",mask);
    do{
        int d = x / mask;
        printf("%d",d);
        if( mask > 9 ){
            printf(" ");
        }
        x %= mask;
        mask /= 10;
        //printf("x=%d mask=%d d=%d\n",x,mask,d);
    }while( mask > 0  );
    return 0;
}

你可能感兴趣的:(C,C语言,整数分解)