加载中...

浙江理工大学入队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;
}
posted @ 2022-10-29 20:19  shany212  阅读(66)  评论(0编辑  收藏  举报