题意:输出从十进制数2992到9999之间(包括两端)十进制表示、十二进制表示、十六进制表示时各位数字和相同的所有数的十进制表示。
题目链接:http://soj.me/1014
——>>直接做就好。
#include <cstdio>
using namespace std;
int main()
{
for(int i = 2992; i <= 9999; i++)
{
int temp = i, sum = 0, sum_16 = 0, sum_12 = 0;
while(temp > 0)
{
sum += temp % 10;
temp /= 10;
}
temp = i;
while(temp > 0)
{
sum_16 += temp % 16;
temp /= 16;
}
temp = i;
while(temp > 0)
{
sum_12 += temp % 12;
temp /= 12;
}
if(sum == sum_12 && sum == sum_16) printf("%d\n", i);
}
return 0;
}