1161 - C语言6.9

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

给电文加密。加密规则是对于每一个字符,如果是字母,变换成其相应的其后(循环的字母序,即A紧跟在Z的后面)的第4个字母。例如A变成E,a变成e,W变成A,X变成B,Y变成C,Z变成D。如果不是字母,则不进行变换。

题目输入

输入一行字符。

题目输出

输出相应的密码。

请注意行尾输出换行。

输入/输出样例

输入格式

China!

输出格式

Glmre!

C语言解答

#include<stdio.h>
int main(){
char c;
  while((c=getchar())!='\n'){
    if(c>='A'&&c<='Z' || c>='a'&&c<='z'){
      if(c>='W'&&c<='Z' || c>='w'&&c<='z')
        c=c-26+4;
      else
        c=c+4;
    }
    printf("%c",c);
  }
  printf("\n");
  return 0;
}

C++解答

#include <stdio.h>
#include <math.h>
int main() {
	char c;
	while ((c = getchar()) != '\n') {
		if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')) {
			c = c + 4;
			if (c > 'Z' && c <= 'Z' + 4 || c > 'z')
				c = c - 26;
		}
		printf("%c", c);
	}
	printf("\n");
	return 0;
}

Java解答

import java.util.*;
public class Main {
    public static void main(String args[]) {
        Scanner cin = new Scanner(System.in);
        String s = cin.nextLine();
        char[] c = s.toCharArray();
        for(int i=0;i<c.length;i++){
            if((c[i]>='A' && c[i]<='Z')||(c[i]>='a' && c[i]<='z'))
            {
                c[i]+=4;
                if((c[i]>'Z'&&c[i]<'a')||c[i]>'z')
                    c[i]-=26;
            }
        }
        System.out.println(new String(c));
    }
}

Python解答

from string import maketrans
table = maketrans('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'efghijklmnopqrstuvwxyzabcdEFGHIJKLMNOPQRSTUVWXYZABCD')
print raw_input().translate(table)