HDUOJ #1197 Specialized Four-Digit Numbers/c++

来源:互联网 发布:yii2 源码 编辑:程序博客网 时间:2024/06/05 22:42

首先是进制的转换,先提一下输出时:

<<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;}


0 0