Cryptography deals with methods of secret communication that transform a message (the plaintext) into a disguised form (the ciphertext)
so that no one seeing the ciphertext will be able to figure out the plaintext except the intended recipient. Transforming the plaintext to
the ciphertext is encryption; transforming the ciphertext to the plaintext is decryption.
Ascend is a simple encryption method that only deal with capital letters. It shifts the i-th letter in a word forwards by i steps in alphabet,
and you may assume the alphabet is circular in that letter Z will follow the letter A.
For example: I ascend WHU to XJX. The process is as follow:
1. I shift the first letter W forwards 1 step to X.
2. I shift the second letter H forwards 2 steps to J.
3. I shift the third letter U forwards 3 steps to X.
Your task is to write a program that can decrypt the messages which are ascended.
输入格式
The input file contains one or more test cases, followed by a line containing only the symbol $ that signals the end of the file.
Each test case is on a line by itself and consists of an ascended message containing at least one and at most 100 capital letters.
You may assume the message dose not contain other characters.
输出格式
For each test case, output the decrypted message on a line by itself.
样例输入
XJX BEPMHVJ $
样例输出
WHU ACMICPC
简单的解密题。
#include<stdio.h>
#include<string.h>
int main(){
char c,s[110],t[110];
int i,n,ascend;
while(scanf("%s",&s)&&strcmp(s,"$")){
n=strlen(s);
for(i=0;i<n;i++){
ascend=(i+1)%26;
c=s[i]-ascend;
if(c<'A')
c=s[i]-ascend+'Z'-'A'+1;
t[i]=c;
}
t[i]='\0';
printf("%s\n",t);
}
return 0;
}
本文介绍了一种名为Ascend的简单加密方法,该方法仅适用于大写字母,并通过将每个字母向前移动对应其位置数目的字母数量来实现加密。文章提供了一个示例程序,用于演示如何解密使用Ascend方法加密的消息。

4548

被折叠的 条评论
为什么被折叠?



