【问题描述】字符解密。设字符加密规则是:将字母和数字字符在各自范围内用其后面的第n个字符替换,n由用户输入。如果n=4,这样字母A就用E替换、B用F……,当然最后四个字符,W需用A、X需用B替换……,以此类推。现编程让用户输入一加密后的字符和及其加密替换值n,请对它进行解密,求出加密前的字符。
【输入形式】用户输入加密后的字符和加密替换值。两个数据间空白字符隔开。
【输出形式】输出加密前的字符。单独占一行。
【样例输入】F 4
【样例输出】B
【样例输入】8 3
【样例输出】5
#include<iostream>
using namespace std;
int main()
{
char ch = 0; int a = 0;
cin >> ch >> a;
if (ch >= 48 && ch <= 57)//48,57对应ASCII码中的0,9
{
if (ch >= (48 + a))
{
cout << (char)(ch - a) << endl;
}
else
{
cout << (char)(ch + 10 - a) << endl;//10=57-48+1
}
}
else if (ch >= 65 && ch <= 90)//65,90对应ASCII码中的A,Z
{
if (ch >= (65 + a))
{
cout << (char)(ch - a) << endl;
}
else
{
cout << (char)(ch + 26 - a) << endl;//26=90-65+1
}
}
else if (ch >= 97 && ch <= 122)//97,122对应ASCII码中的a,z
{
if (ch >= (97 + a))
{
cout << (char)(ch - a) << endl;
}
else
{
cout << (char)(ch + 26 - a) << endl;//26=122-97+1
}
}
return 0;
}