题意及思路

题意:特殊的四位数,是说一个四位数,假如他的十进制表示形式下的个位数之和 与 十二进制及十六进制形式下的个个位上数的和 相等,则这是我们需要输出的。

思路:利用进制间的转换将这三种形式下的和进行比较判断,如若相等,则输出。

踩坑点:需要熟练十进制转换到其他进制的转换方法。


代码

#include<stdio.h> #include<string.h> int trans(int n,int type){ int sum = 0; char res[4+1]; int index = 0; if(type==16){while(n != 0){
            sum += n%type;
            n = n/type;            
        }
    }else if(type==12){while(n != 0){
            sum += n%type;
            n = n/type;         
        }
    } return sum;
} void judge(int res[],int n){ int flag = 1; for(int i=1;i<3;i++){ if(res[i]!=res[i-1]){
            flag = 0; break;
        }
    } if(flag){
        printf("%d\n",n);
    }else{ //do null  }
} int sum(int n){ int res = 0;
    res += n%10+n/10%10+n/10/10%10+n/1000; return res;
} int main(){ int res[3]; int k; for(int i=2992;i<=9999;i++){ //reset k = 0; //10 res[k++] = sum(i); //12 res[k++] = trans(i,12); //16 res[k++] = trans(i,16); //judge  judge(res,i);
    } return 0;
}