时间限制: 1 Sec 内存限制: 64 MB
题目描述
密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。 假设渊子原来一个BBS上的密码为zvbo941987,为了方便记忆,他通过一种算法把这个密码变换成YUANzi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。 他是这么变换的,大家都知道手机上的字母: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,就这么简单,渊子把密码中出现的小写字母都变成对应的数字,数字和其他的符号都不做变换,声明:密码中没有空格,而密码中出现的大写字母则边成小写之后往后移一位,如:X,先边成小写,再往后移一位,不就是y了嘛,简单吧。记住,z往后移是a哦。
输入
输入包括多个测试数据。输入是一个明文,密码长度不超过100个字符,输入直到文件结尾。
输出
输出渊子真正的密文。
样例输入
YUANzi1987
样例输出
zvbo941987
提示
来源
不想找规律,之间暴
#include <bits/stdc++.h>
#define cl(x) memset(x,0,sizeof(x))
#define _cl(a,b) memset(a,0,(b+1)<<2)
#define At(x,y) memset(x,y,sizeof x)
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define drep(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
#define pb push_back
#define vct vector
#define pq priority_queue
#define all(x) x.begin(),x.end()
#define int long long
#define fi first
#define se second
//#pragma GCC optimize(2)
using namespace std;
inline int min(int a,int b) {return a<b?a:b;}
inline int max(int a,int b) {return a>b?a:b;}
//map<string,map<string,int> > mp;
//pq <ll,vct<ll>,less<ll> > now,last;
//vct<vct<int> > vt(n+1,vct<int>(m+1,0))
const int inf=0x3f3f3f3f;
const ll INF=0x3f3f3f3f3f3f3f3f;
const ll mod=1e9+7;
const int MOD=998244353;
const int N=1e2+10;
int n,m,k;
char s[N];
void solve()
{
while(gets(s)){
n=strlen(s);
for(int i=0;i<n;i++){
if(s[i]>='A'&&s[i]<='Z') cout<<(char) ((s[i]-'A'+1)%26+97);
else if(s[i]>='a'&&s[i]<='z'){
if(s[i]<='o') cout<<(s[i]-'a')/3+2;
else if(s[i]<='s') cout<<'7';
else if(s[i]<='v') cout<<'8';
else cout<<'9';
}else cout<<s[i];
}
cout<<"\n";
}
return ;
}
signed main()
{
// srand(time(NULL));
// freopen("2022_XinShengSai_1.in", "r", stdin);
// freopen("2022_XinShengSai_1.out", "w", stdout);
// ios::sync_with_stdio(false);
// cin.tie(0); cout.tie(0);
int t;
// cin>>t;
t=1;
while(t--)
solve();
return 0;
}
/*
*/