理工大學ACM平臺題答案關於C語言 1210簡單密碼破解 阿新 • • 發佈:2019-01-22 簡單密碼破解 你們好有更好的方法嗎?能寫下來嗎 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"); }