1194 - C语言7.18
时间限制 : 1 秒
内存限制 : 32 MB
有一行电文,已经按照如下规则译成了密码:
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; }
Java解答
import java.util.Scanner; public class Main { private static Scanner s = new Scanner(System.in) ; public static void main(String[] args) { String str = s.nextLine() ; System.out.println(f(str)); } public static String f(String str){ char c[] = str.toCharArray() ; for (int i = 0; i < c.length; i++) { if(c[i]>='a'&&c[i]<='z') c[i] = (char) ('a'+24-(c[i]-'a')+1) ; else if(c[i]>='A'&&c[i]<='Z'){ c[i] = (char) ('A'+24-(c[i]-'A')+1) ; } } return new String(c) ; } }