1. 程式人生 > >理工大學ACM平臺題答案關於C語言 1210簡單密碼破解

理工大學ACM平臺題答案關於C語言 1210簡單密碼破解

簡單密碼破解

你們好有更好的方法嗎?能寫下來嗎
Time Limit: 1000ms   Memory limit: 65536K  有疑問?點這裡^_^

題目描述

密碼是我們生活中非常重要的東東,我們的那麼一點不能說的祕密就全靠它了。哇哈哈.

接下來淵子要在密碼之上再加一套密碼,雖然簡單但也安全。

假設淵子原來一個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

提示

來源

ZJGSU

#include<stdio.h>

#include<stdio.h>

#include <string.h>

void main ()

{

char s[80];

scanf ("%s",s);

int i,len;

len = strlen(s);

for (i=0;i<len;i++)

{

         if (s[i]>='a'&&s[i]<='c')

    s[i]='2';

    else if (s[i]>='d'&&s[i]<='f')

 s[i]='3';

 else if (s[i]>='g'&&s[i]<='i')

  s[i]='4';

   else if (s[i]>='j'&&s[i]<='l')

s[i]='5';

else if (s[i]>='m'&&s[i]<='o')

s[i]='6';

else if (s[i]>='p'&&s[i]<='s')

s[i]='7';

else if (s[i]>='t'&&s[i]<='v')

s[i]='8';

else if (s[i]>='w'&&s[i]<='z')

    s[i]='9';

else if (s[i]>='A'&&s[i]<='Y')

s[i]=s[i]+33;

else if (s[i]=='Z')

s[i]='a';

}

printf("%s",s);

printf ("\n");