IBM Minus One


Time Limit:
2 Seconds      Memory Limit:
65536 KB


You may have heard of the book '2001 - A Space Odyssey' by Arthur C. Clarke, or the film of the same name by Stanley Kubrick. In it a spaceship is sent from Earth to Saturn. The crew is put into stasis for the long flight, only
two men are awake, and the ship is controlled by the intelligent computer HAL. But during the flight HAL is acting more and more strangely, and even starts to kill the crew on board. We don't tell you how the story ends, in case you want to read the book for
yourself :-)

After the movie was released and became very popular, there was some discussion as to what the name 'HAL' actually meant. Some thought that it might be an abbreviation for 'Heuristic ALgorithm'. But the most popular explanation
is the following: if you replace every letter in the word HAL by its successor in the alphabet, you get ... IBM.

Perhaps there are even more acronyms related in this strange way! You are to write a program that may help to find this out.

Input

The input starts with the integer n on a line by itself - this is the number of strings to follow. The following n lines each contain one string of at most 50 upper-case letters.

Output

For each string in the input, first output the number of the string, as shown in the sample output. The print the string start is derived from the input string by replacing every time by the following letter in the alphabet,
and replacing 'Z' by 'A'.

Print a blank line after each test case.

Sample Input

2

HAL

SWERC

Sample Output

String #1

IBM

String #2

TXFSD


#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<math.h>
#include<string>
using namespace std;
char dic[]={' ','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
void _solve(string s)
{
for(int i=0;i<s.length();i++)
{
if(s[i]=='Z') cout<<'A';
else {
int j=0;
while(dic[j]!=s[i]) j++;
cout<<dic[j+1];
}
}
}
int main()
{
int n;
string str;
cin>>n;
for(int v=1;v<=n;v++)
{
cin>>str;
cout<<"String #"<<v<<endl;
_solve(str);
cout<<endl<<endl;
}
return 0;
}

非打表的编码处理方式:
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<math.h>
#include<string>
using namespace std;
void _solve(string s)
{
for(int i=0;i<s.length();i++)
{
if(s[i]=='Z') cout<<'A';
else cout<<char(s[i]+1);
}
}
int main()
{
int n;
string str;
cin>>n;
for(int v=1;v<=n;v++)
{
cin>>str;
cout<<"String #"<<v<<endl;
_solve(str);
cout<<endl<<endl;
}
return 0;
}

最新文章

  1. CEF中select选项错位的解决方法
  2. linux 记录用户操作记录日志
  3. preload pic
  4. usb驱动开发8之配置描述符
  5. iOS:抽屉侧滑动画两种形式(1、UIView侧滑 2、ViewController侧滑)
  6. iOS开发之都兴忱小结
  7. Raspberry Pi无线路由器篇
  8. POJ 2409 Let it Bead(Polya定理)
  9. 运行从别处复制过来的linux可执行程序
  10. Zigbee协议栈OSAL层API函数【转载】
  11. MySQL单表百万数据记录分页性能优化,转载
  12. TensorFlow图像处理API
  13. day-09内存管理
  14. Vladik and Complicated Book CodeForces - 811B (思维实现)
  15. 在1-10中选择一个数,输出x+xx+xxx+xxx....x之和,如:数字为2,则2+22=24
  16. .NET学习日记【1】
  17. linux 文件目录类的指令 包含查找
  18. Codeforces.838D.Airplane Arrangements(思路)
  19. 【Unity】2.10 利用VS2015编辑Unity的C#脚本
  20. 什么是PHP无限级分类

热门文章

  1. 为什么可以通过URL来调起APP - URL Scheme和Intent
  2. RAID RAID 大揭秘~
  3. PHP(函数)
  4. Cobbler批量部署CentOS
  5. 201521123107 《Java程序设计》第10周学习总结
  6. 团队作业4---第一次项目冲刺(ALpha)版本 第六天
  7. 201521123019 《Java程序设计》第8周学习总结
  8. ArrayList和LinkedList区别及性能测试
  9. 201521123067 《Java程序设计》第9周学习总结
  10. Java课设-购物车系统