算法学习之旅,初级篇(11)--凯撒的密码
来源:互联网 发布:2017中超球员数据 编辑:程序博客网 时间:2024/06/05 05:11
介绍
凯撒时代充满了动荡和危险,凯撒为了保证在战争中传递秘密消息,发明了一种密码。他在所有的信件中将所有的字符按字母顺序向后移动了5个位置(比如说,原文中是A,那么密信中就为F),密信中字母和原文中字母的对应关系如下:
密文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
原文:VWXYZABVDEFGHIJKLMNOPQRSTU
只有字母被替换,而且所有字母都是大写的。
分析
可通过ASCII码表来计算。
代码
#include<stdio.h>
#include<stdlib.h>
#include<string>
int main()
{
char m_str[200];
int len;
printf("请输入字符串:\n");
scanf("%s",m_str);
len=strlen(m_str);
for(int i=0;i<len;i++)
{
if(m_str[i]>='F'&&m_str[i]<='Z')
m_str[i]=m_str[i]-5;
else if(m_str[i]>='A'&&m_str[i]<='E')
m_str[i]=m_str[i]+21;
else
m_str[i]=m_str[i];
}
printf("正确明文是;%s\n",m_str);
system("pause");
return 0;
}
#include<stdlib.h>
#include<string>
int main()
{
char m_str[200];
int len;
printf("请输入字符串:\n");
scanf("%s",m_str);
len=strlen(m_str);
for(int i=0;i<len;i++)
{
if(m_str[i]>='F'&&m_str[i]<='Z')
m_str[i]=m_str[i]-5;
else if(m_str[i]>='A'&&m_str[i]<='E')
m_str[i]=m_str[i]+21;
else
m_str[i]=m_str[i];
}
printf("正确明文是;%s\n",m_str);
system("pause");
return 0;
}
遇到的问题
问题不大
阅读全文
0 0
- 算法学习之旅,初级篇(11)--凯撒的密码
- Java学习之“凯撒密码”实例
- C#实现“凯撒”密码的算法
- 经典加密算法凯撒密码、维吉尼亚密码,RSA算法加密的简单学习
- 凯撒密码算法
- 凯撒密码学习
- FZU1406 之 凯撒密码
- 算法学习之旅,初级篇(1)--大小写转换
- 算法学习之旅,初级篇(2)--水仙花数
- 算法学习之旅,初级篇(4)--哈密尔顿距离
- 算法学习之旅,初级篇(5)--数码平方和
- 算法学习之旅,初级篇(6)--统计字符
- 算法学习之旅,初级篇(7)--数字塔
- 算法学习之旅,初级篇(9)--字符串逆序
- 算法学习之旅,初级篇(10)--回文字符串
- 算法学习之旅,初级篇(12)--最小公倍数
- 算法学习之旅,初级篇(13)--素数判定
- 算法学习之旅,初级篇(15)--分数加减法
- 【maven】web项目不需要web.xml,maven打包报错
- 《机器学习实战》学习笔记(一)
- PS学习—人像处理
- C语言恶作剧(1):交换鼠标左右键
- Leetcode-033 Search in Rotated Sorted Array
- 算法学习之旅,初级篇(11)--凯撒的密码
- 内部类
- 关于CSS-RESET的浅析和个人理解
- ColorFilter的使用
- 求最大子数组之积
- SSH框架整合思想
- 邂逅ReactNative(一):在windows下搭建开发环境
- Leetcode-2: Add Two Numbers
- Java面试题大汇总