1898 - 破解简单密码

密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 

接下来渊子要在密码之上再加一套密码,虽然简单但也安全。 
假设老王原来一个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
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题