可以说是板子题,进制转换,不断取余,这道题简单在也不用输出,比如十六进制九以后的数要表示成A,B,C…像这道题就可以直接取余然后加到结果里,然后不同进制的结果进行比较。
#include<iostream>
#include<set>
#include<queue>
#include<cmath>
#include<stack>
#include<vector>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<functional>
using namespace std
;
const int maxn
=1010;
const int INF
=0x3f3f3f3f;
int a
[maxn
];
int tentok(int n
,int k
){
int res
=0;
while(n
){
res
+=n
%k
;
n
/=k
;
}
return res
;
}
int main(){
for(int i
=2992;i
<=9999;i
++){
int sum
=0;
int j
=i
;
while(j
){
sum
+=j
%10;
j
/=10;
}
if(sum
==tentok(i
,12)&&sum
==tentok(i
,16)) cout
<<i
<<endl
;
}
return 0;
}