中国商标网商标查询官方网站,制作网站的钱,电商关键词查询工具,大连建设网水电费缴费【问题3】
本问题中#xff0c;我们用以下的编码表示一定范围内的整数#xff1a;
10〜35:以大写英文字母A至Z表示#xff1b;0〜9:以字符’0’至’9’表示#xff1b;-1〜-10:分别以!#$%?*()表示#xff1b;-11〜-36:以小写英文字母a至z表示#xff1b;
这样一…【问题3】
本问题中我们用以下的编码表示一定范围内的整数
10〜35:以大写英文字母A至Z表示0〜9:以字符’0’至’9’表示-1〜-10:分别以!#$%?*()表示-11〜-36:以小写英文字母a至z表示
这样一来这些整数均可以由单个字符表示。
如数列0,35,18, 2便可表示为0Zh。
前者书写时需要8个字符不含括号、逗号后者只需4个字符。
上山容易下山难。你在自己的硬盘里翻出了一段以这种格式编码的数据你希望将这些数据复原。
请编写程序完成这件事。
【输入形式】
输入一行是一个字符串表示压缩后的数据。该字符串满足以下三个条件
1不为空。
2仅包含题目中的编码字符。
3长度不超过10000。
【输岀形式】
输出共2行。
第一行1个正整数n表示数据个数。
第二行n个以空格分隔的整数a1a2…an表示复原的结果。
【样例输入】
0Zh
【样例输出】
4
0 35 -18 -2
【样例说明】
字符串长度为4对应编码4个数字第一行输出4。
第二行依次输出4个整数空格分隔第一个字符0对应数字0第二个大写字母Z对应35第三个小写字母h对应-18最后的对应-2 。
【评分标准】
根据输入要求输出指定的结果提交程序名为code.c。
暴力代码
#includestdio.h
int turn(char x){switch(x){case A:return 10;break;case B:return 11;break;case C:return 12;break;case D:return 13;break;case E:return 14;break;case F:return 15;break;case G:return 16;break;case H:return 17;break;case I:return 18;break;case J:return 19;break;case K:return 20;break;case L:return 21;break;case M:return 22;break;case N:return 23;break;case O:return 24;break;case P:return 25;break;case Q:return 26;break;case R:return 27;break;case S:return 28;break;case T:return 29;break;case U:return 30;break;case V:return 31;break;case W:return 32;break;case X:return 33;break;case Y:return 34;break;case Z:return 35;break;case 0:return 0;break;case 1:return 1;break;case 2:return 2;break;case 3:return 3;break;case 4:return 4;break;case 5:return 5;break;case 6:return 6;break;case 7:return 7;break;case 8:return 8;break;case 9:return 9;break;case !:return -1;break;case :return -2;break;case #:return -3;break;case $:return -4;break;case %:return -5;break;case ?:return -6;break;case :return -7;break;case *:return -8;break;case (:return -9;break;case ):return -10;break;case a:return -11;break;case b:return -12;break;case c:return -13;break;case d:return -14;break;case e:return -15;break;case f:return -16;break;case g:return -17;break;case h:return -18;break;case i:return -19;break;case j:return -20;break;case k:return -21;break;case l:return -22;break;case m:return -23;break;case n:return -24;break;case o:return -25;break;case p:return -26;break;case q:return -27;break;case r:return -28;break;case s:return -29;break;case t:return -30;break;case u:return -31;break;case v:return -32;break;case w:return -33;break;case x:return -34;break;case y:return -35;break;case z:return -36;break;}
}
int main(){char c[10000]{0};int sum0;scanf(%s,c);int end[10000]{0}; while(c[sum]!\0){//记住符号串结尾是\0;end[sum]turn(c[sum]);sum;}printf(%d\n,sum);for(int i0;isum;i){printf(%d ,end[i]);}
}