1194 - C语言7.18

有一行电文,已经按照如下规则译成了密码:

A->Z a->z
B->Y b->y
C->X c->x
… …
… …
即第1个字母变换成第26个字母,第i个字母变换成第(26-i+1)个字母。非字母字符不变。给定一段密码,请将其译成原文并输出。

题目输入

一行密码,包含各种可见字符,保证长度不超过100。

题目输出

如题目描述中密码翻译规则译出的原文。

请注意行尾输出换行。

输入/输出样例

题目输入

R zn z kiltizn.

题目输出

I am a program.

C语言解答

#include <stdio.h>
#include <string.h>
int main() {
        char encode[101], decode[101];
        int i, length;
        gets(encode);
        length = strlen(encode);
        decode[length] = '\0';
        for (i = 0;i < length;i++) {
                if ('A' <= encode[i] && encode[i] <= 'Z') {
                        decode[i] = 'A' + ('Z' - encode[i]);
                } else if ('a' <= encode[i] && encode[i] <= 'z') {
                        decode[i] = 'a' + ('z' - encode[i]);
                } else {
                        decode[i] = encode[i];
                }
        }
        puts(decode);
        return 0;
}

C++解答

#include <stdio.h>
#include <string.h>
int main() {
	char encode[101], decode[101];
	int i, length;
	gets(encode);
	length = strlen(encode);
	decode[length] = '\0';
	for (i = 0;i < length;i++) {
		if ('A' <= encode[i] && encode[i] <= 'Z') {
			decode[i] = 'A' + ('Z' - encode[i]);
		} else if ('a' <= encode[i] && encode[i] <= 'z') {
			decode[i] = 'a' + ('z' - encode[i]);
		} else {
			decode[i] = encode[i];
		}
	}
	puts(decode);
	return 0;
}

时间限制 1 秒
内存限制 32 MB
讨论 统计
上一题 下一题