【POJ】2196.Specialized Four-Digit Numbers

思路

就是把这个数分别转化为十二进制和十六进制,然后分别计算三种进制下,每个数位上面的数字相加之和是否相等。本题考查点是进制的转化。

代码

#include<stdio.h>
int transToAny(int num,int a);
int main(int argc, char const *argv[])
{
    int i;
    int num1,num2,num3;
    for(i = 2992; i < 10000; i++){
        num1 = transToAny(i,10);
        num2 = transToAny(i,12);
        num3 = transToAny(i,16);
        if(num1 == num2 && num1 == num3)
            printf("%d\n",i);
    }
    return 0;
}
int transToAny(int num,int a){
    int Quo = 0,Rem = 0,sum = 0;
    
    while(1){
        Quo = num/a;
        Rem = num%a;
        sum += Rem;
        if(Quo == 0)
        break;
        else
        num = Quo;
        /* code */
    }
    return sum;
    
}

猜你喜欢

转载自www.cnblogs.com/zhaijiayu/p/9639856.html