小新同学的数学成绩比较好,很多信息内容都爱转换成数字保存起来,今天他要对一串由英文大小写字母组成的字符串进行加密,加密方法是:对于大写字母,如果ASCII编码是偶数对应的密文为编码值除以2,如果是奇数密文为字符的 ASCII编码值,如果是小写字母对应的密文为ASCII编码值乘以2。现在给出加密后的字符串,请恢复原字符串内容。 数据范围:原文字符串长度不超过1000
输入格式:
输入一行由数字字符组成的密文内容。
输出格式:
输出原文字符串的内容。
输入样例:
6533198
输出样例:
ABc
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 10010
int main()
{
char s[N];
int i=0,x;
gets(s);
while(s[i]!=0)
{
x=(s[i]-'0')*10+(s[i+1]-'0');//读取两位
i+=2;
if(x<33)
{
x=x*10+(s[i]-'0');//读取三位
i++;
}
if(x>=33&&x<=45)//大写偶数
printf("%c",x*2);
else if(x>=65&&x<=89)//大写奇数
printf("%c",x);
else if(x>=194&&x<=244)//小写字母
printf("%c",x/2);
}
return 0;
}