随笔-38  评论-23  文章-0  trackbacks-0
这次比赛里最简单的一道题目了...
直接模拟5次解密过程就可以过的水题..一道出自百度贴吧的真实故事的题目哈哈..

#include<iostream>
#include
<cstring>
using namespace std;
char num[10][5]={"","_","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"};
char zh1[27]={"QWERTYUIOPASDFGHJKLZXCVBNM"};
char zh[27];
char str[1005];
char c[505];
int main()
{
    
for(int i=0;i<26;i++)
        zh[zh1[i]
-'A']='A'+i;

    
while(gets(str))
    
{
        
int len=strlen(str);
        
int k=0;
        
for(int i=0;i<len;i+=2)
            c[k
++]=num[str[i]-'0'][str[i+1]-'0'-1];
        len
=k;
        c[len]
='\0';
        
for(int i=0;i<len;i++)
            c[i]
=zh[c[i]-'A'];
        
int l1;
        
if(len%2==0)
            l1
=len/2;
        
else
            l1
=len/2+1;
        
int i,j;
        
char res[505];
        k
=0;
        
for(i=0,j=l1;i<l1&&j<len;i++,j++)
        
{
            res[k
++]=c[i];
            res[k
++]=c[j];
        }

        
for(;i<l1;i++)
            res[k
++]=c[i];
        
for(;j<len;j++)
            res[k
++]=c[j];
        
for(i=k-1;i>=0;i--)
            putchar(res[i]);
        putchar(
'\n');
    }

    
return 0;
}

posted on 2009-05-02 20:49 米游 阅读(307) 评论(0)  编辑 收藏 引用 所属分类: ACM

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理