题目大意:判断一个四位数十进制数,各位之和与转化为12,16进制数后各位之和是否相等。相等则输出这个数。
解题思路:考察进制转化,只需求和即可。不需输出转化后的数。当然也可以打表。
// 1014. Specialized Four-Dig
#include <iostream>
using namespace std;
// 进制转换,只需要求和即可
int toBase(int num,int base){
int sum = 0;
while( num / base ){
sum += num % base;
num = num / base;
}
sum += num;
return sum;
}
int main () {
//freopen("D:\\input.txt","r",stdin);
for( int i = 1000; i < 10000; ++i ){
if( toBase(i,10) == toBase(i,12) && toBase(i,10) == toBase(i,16) )
cout << i << endl;
}
return 0;
}