破密信
提交数: 307, 通过率: 14.66%, 平均分: 20.28
题目描述:
【背景描述】
话说小明十分喜欢当侦探,长大后,小明果然当上了侦探,现在,Ferrari(盗贼名)开始行动,十分棘手……
【问题描述】
Ferrari给同伴发了一封信,被小明截住了,里面有两封信,一封信上有一个数字m,另一封信上有一篇文章,由字母、数字、符号、空格和回车构成,但无人能知其意。一资深的侦探告诉小明,这是一种叫fassional的加密法,规则如下:
把26围成一圈。现在从第一个字母开始报数,报到m的字母出圈,这个字母就相当于原文中的“a”,然后再从下一个字母开始重新报数,报到m的字母出圈,这个字母就相当于原文中的“b”,……直到只剩下一个字母为止。这个字母相当于原文中的“z”。
在原文中大写的翻译文中就大写,小写的翻译文中就小写。
数字、符号、空格和回车原样输出。
请你帮小明翻译这篇文章。
输入格式:
第一行为m
接下来是一篇文章
输出格式:
为翻译过后的文章
样例输入:
5 I'm 13 years old!~ Oh^ I have $1 and #1! (3+2)*7<>3500%*2/3 ?
样例输出:
W'a 13 vyebr ust!~ Uq^ W qexy $1 eit #1! (3+2)*7<>3500%*2/3 ?
提示:
读完所有行内容的方法是:
string s;
while ( getline(cin,s) ){ //或 getline(cin,s) != NULL
//对s的处理代码;
}
//对s的处理代码;
}
【输入输出样例解析】
abcdefghijklmnopqrstuvwxyxz分别用ejotydkqwclsaiufpbrhzxgnvm表示。
【限制】
70%的数据满足:1<=m<=10^9
100%的数据满足:m<=maxlongint
空间限制: 128MB
来源: 原创