閱讀585 返回首頁    go 技術社區[雲棲]


九度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

  上一篇:go bootrom的構成
  下一篇:go OSS圖片處理服務上線