一、题目链接
http://noi.openjudge.cn/ch0107/12/
二、解题思路(Java)
三、解题思路(C++)
四、Java程序
import java.util.Scanner;
import static java.lang.Character.isUpperCase;
public class Main {
public String decryption(String name) {
char[] ans = name.toCharArray();
int n = ans.length;
int i;
char t;
for (i = 0; i < n; i++) {
if (ans[i] == 'x' || ans[i] == 'X' ||
ans[i] == 'y' || ans[i] == 'Y' ||
ans[i] == 'z' || ans[i] == 'Z') {
ans[i] = (char) (ans[i] - 23);
}
else {
ans[i] = (char) (ans[i] + 3);
}
}
for (i = 0; i < n / 2; i++) {
t = ans[i];
ans[i] = ans[n - i - 1];
ans[n - i - 1] = t;
}
for (i = 0; i < n; i++) {
if (isUpperCase(ans[i])) {
ans[i] = (char) (ans[i] + 32);
}
else {
ans[i] = (char) (ans[i] - 32);
}
}
return String.valueOf(ans);
}
public static void main(String[] args) {
Main test = new Main();
Scanner input = new Scanner(System.in);
String text = input.next();
System.out.print(test.decryption(text));
}
}
五、C++程序
#include <iostream>
using namespace std;
int main()
{
string name;
cin >> name;
int n = name.length();
int i;
char t;
for (i = 0; i < n; i++)
{
if (name[i] == 'x' || name[i] == 'X' || name[i] == 'y' || name[i] == 'Y' ||
name[i] == 'z' || name[i] == 'Z')
{
name[i] = name[i] - 23;
}
else
{
name[i] = name[i] + 3;
}
}
for (i = 0; i < n / 2; i++)
{
t = name[i];
name[i] = name[n - i - 1];
name[n - i - 1] = t;
}
for (i = 0; i < n; i++)
{
if (isupper(name[i]))
{
name[i] = name[i] + 32;
}
else
{
name[i] = name[i] - 32;
}
}
cout << name;
return 0;
}