1898 - 破解简单密码
时间限制 : 1 秒
内存限制 : 128 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
C语言解答
#include <stdio.h> int main() { char c; while (scanf("%c",&c)==1) { if (c>=65 && c<=90) //A~Z { c+=33; if (c==123) c=97; printf("%c",c); } else if (c>=97 && c<=122) //a~z { if (97<=c && c<=99)//abc printf("2"); if (100<=c && c<=102)//def printf("3"); if (103<=c && c<=105)//ghi printf("4"); if (106<=c && c<=108)//jkl printf("5"); if (109<=c && c<=111)//mno printf("6"); if (112<=c && c<=115)//pqrs printf("7"); if (116<=c && c<=118)//tuv printf("8"); if (119<=c && c<=122) printf("9"); }else printf("%c",c); } return 0; }
C++解答
#include<bits/stdc++.h> using namespace std; string a; int flag; int main() { while(cin>>a) { for(int i=0;i<a.size();i++) { if(a[i]>='A'&&a[i]<='Z') {if(char(a[i]+32)=='z')cout<<'a';else cout<<char(a[i]+33);flag=1;} if(a[i]>='a'&&a[i]<='z') { if(a[i]>='a'&&a[i]<='c'){cout<<2;flag=1;} if(a[i]>='d'&&a[i]<='f'){cout<<3;flag=1;} if(a[i]>='g'&&a[i]<='i'){cout<<4;flag=1;} if(a[i]>='j'&&a[i]<='l'){cout<<5;flag=1;} if(a[i]>='m'&&a[i]<='o'){cout<<6;flag=1;} if(a[i]>='p'&&a[i]<='s'){cout<<7;flag=1;} if(a[i]>='t'&&a[i]<='v'){cout<<8;flag=1;} if(a[i]>='w'&&a[i]<='z'){cout<<9;flag=1;} } if(a[i]=='1'){cout<<1;flag=1;} if(a[i]=='0'){cout<<0;flag=1;} if(flag==0)cout<<a[i]; flag=0; } cout<<endl; } return 0; } //zvbo941987 //YUANzi1987