首先是进制的转换,先提一下输出时:
<<dec<<x 以十进制数输出
<<hec<<x 以十六进制数输出
<<oct<<x 以八进制数输出
itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用 的基数。在上例中,转换基数为10。10:十进制;2:二进制...
用isdigit()判断
#include<iostream>
#include<string>
#include<cctype>
#include<iomanip>
using namespace std;
int sumdec(int i){
int s=0;
char t[6];
itoa(i,t,10);
for(int i=0;i<strlen(t);i++){
s+=(int)(t[i]-'0');
}
return s;
}
int sumduo(int i){
int s=0;
char t[6];
itoa(i,t,12);
for(int i=0;i<strlen(t);i++){
if(isdigit(t[i])){s+=(int)(t[i]-'0');}
else{s+=(int)(t[i]-'a')+10;}
}
return s;
}
int sumhex(int i){
int s=0;
char t[6];
itoa(i,t,16);
for(int i=0;i<strlen(t);i++){
if(isdigit(t[i])){s+=(int)(t[i]-'0');}
else{s+=(int)(t[i]-'a')+10;}
}
return s;
}
int main(){
int a,b,c;
for(int i=2992;i<10000;i++){
a=sumdec(i);
b=sumduo(i);
c=sumhex(i);
if(a==b&&b==c){cout<<i<<endl;}
}
return 0;
}