1194 - C语言7.18

通过次数

0

提交次数

0

时间限制 : 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) ;
   }
}