585
技術社區[雲棲]
九度1538:GrassLand密碼
由於害怕別人偷玩他的新手機,GrassLand總是為其手機加上鎖屏密碼。但是毫無規律的密碼又不方便自己記憶,於是他有了這麼一個主意:
首先GrassLand會有一個僅包含小寫字母的明文密碼,如horse。
然後,他按照九宮格鍵盤(手機鍵盤自己看)上字母的標注(下圖),將字母轉化為相應的數字按鍵。如h出現在按鍵4上,那麼其對應的數字為4。
按照這個規則,GrassLand的明文密碼被加密為46773。
現在他需要你為他編寫一個程序來完成這個加密過程,生成密碼。
輸入:
輸入包含多組測試數據,每組測試數據一行,包含一個僅包含小寫字母的字符串,其長度小於10000。
輸出:
對於每組測試用例,輸出為一個僅包含數字的字符串,代表加密後的密碼。
樣例輸入:
horse
strawberry
樣例輸出:
46773
7872923779
#include<stdio.h> #include<string.h> char a[10010]; int b[10010]; int main() { int i,j,n,m,k; while(scanf("%s",a)!=EOF) { memset(b,0,sizeof(b)); n=strlen(a);k=0; for(i=0;i<n;i++) { if(a[i]=='a'||a[i]=='b'||a[i]=='c') {b[k++]=2;continue;} if(a[i]=='d'||a[i]=='e'||a[i]=='f') {b[k++]=3;continue;} if(a[i]=='g'||a[i]=='h'||a[i]=='i') {b[k++]=4;continue;} if(a[i]=='j'||a[i]=='k'||a[i]=='l') {b[k++]=5;continue;} if(a[i]=='m'||a[i]=='n'||a[i]=='o') {b[k++]=6;continue;} if(a[i]=='p'||a[i]=='q'||a[i]=='r'||a[i]=='s') {b[k++]=7;continue;} if(a[i]=='t'||a[i]=='u'||a[i]=='v') {b[k++]=8;continue;} if(a[i]=='w'||a[i]=='x'||a[i]=='y'||a[i]=='z') {b[k++]=9;continue;} } for(i=0;i<k;i++) printf("%d",b[i]); puts(""); memset(a,0,sizeof(a)); } return 0; }
最後更新:2017-04-03 12:55:38