HDU-2097 Sky数

http://acm.hdu.edu.cn/showproblem.php?pid=2097


#include
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        if(n==0) break;
        int a,b,c,d,a2,b2,c2,d2=0,a6,b6,c6,d6=0;
        a=n%10;                            //求该数的十进制表示中,各位上数字
        b=(n%100)/10;
        c=(n%1000-n%100)/100;
        d=n/1000;
        a2=n%12;                            //求该数的十二进制表示中,各位上数字
        b2=(n%(12*12))/12;
        c2=(n%(12*12*12)-b2*12-a2)/(144);
        d2=n/(12*12*12);
        a6=n%16;                           //求该数的十六进制表示中,各位上数字
        b6=(n%(16*16))/16;
        c6=(n%(16*16*16)-b6*16-a6)/256;
        d6=n/(16*16*16);
        int s1,s2,s3;
        s1=a+b+c+d;                      //求该数的十进制表示中,各位上数字之和
        s2=a2+b2+c2+d2;                  //求该数的十二进制表示中,各位上数字之和
        s3=a6+b6+c6+d6;                  //求该数的十六进制表示中,各位上数字之和
        if(s1==s2&&s1==s3)
            printf("%d is a Sky Number.\n",n);
        else
            printf("%d is not a Sky Number.\n",n);
    }
    return 0;
}

你可能感兴趣的:(acm)