该题意思即为找出从2992开始的十进制下的各位数之和等于16进制下各位数之和等于12进制下各位数之和(十进制下)。既进行进制转化
int f(int num,int radix)
{
int x=0;// 存放不同进制下每一位的和
while(num)/类比十进制下分解整数
{
x+=num%radix;
num/=radix;
}
return x;
}
AC 代码
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
int f(int num,int radix)
{
int x=0;// all number sum;
while(num)
{
x+=num%radix;
num/=radix;
}
return x;
}
int main()
{
int i;
int res10,res12,res16;
for(i = 2992;i<10000;i++)
{
res10=f(i,10);
res12=f(i,12);
res16=f(i,16);
if(res10 == res12 &&res12 == res16)
{
cout<<i<<endl;
}
}
return 0;
}