浙江理工大学入队200题——14H
问题 H: 零基础学C/C++153——恺撒加密
题目描述
有一行电文,请将电文中所有字母按A→F,B→G,……,U→Z,V→A,W→B,X→C,Y→D,Z→E,a→f,b→g,……,u→z,v→a,w→b,x→c,y→d,z→e的规律译成密文,其他字符保持不变。
输入
多组测试数据,每组输入一行以回车结束的字符串(少于80个字符)。
输出
输出加密后的字符串。
样例输入 Copy
There are 5 ducks.
样例输出 Copy
Ymjwj fwj 5 izhpx.
题解
不知道你发现了没有,在ASCII表内我们A——U,a——u是往后+5的,V——Z,v——z是往后-21的,摸索出这个规律就easy啦~
多么光明的未来ヽ(.◕ฺˇд ˇ◕ฺ;)ノ(哼哼啊啊啊啊啊啊啊啊啊!)
代码(AC)
点击查看代码
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
int main (){
char a[1000];
while(gets(a)!=NULL)
{
int m=strlen(a);
for(int i=0;i<m;i++)
{
if(a[i]<='U' && a[i]>='A') { a[i]=a[i]+5;continue;}
if(a[i]<='Z' && a[i]>='V') { a[i]=a[i]-21;continue;}
if(a[i]<='u' && a[i]>='a') { a[i]=a[i]+5;continue;}
if(a[i]<='z' && a[i]>='v') { a[i]=a[i]-21;continue;}
}
printf("%s\n",a);
}
return 0;
}
本文来自博客园,作者:shany212,转载请注明原文链接:https://www.cnblogs.com/codeshany/p/zstu_200_14H.html