插入加密

本文介绍了一种插入式加密方法,通过在明文字母中按特定间隔插入'a'到'e'的字母来形成密文。例如,明文'china'在间隔为1时加密成'cahbicndae'。当字母序列用完时,会从头开始重新取字母,确保密文中最后一个字符始终来自额外字母序列。给出的输入包括明文字符串(长度不超过30)和一个1到5之间的间隔数,输出为不超过60个字符的密文。

5

插入加密(20分)

题目内容:

插入式加密是在明文字母中按照指定间隔插入另一些字母以形成密文。例如对明文china,在间隔为1的位置插入其它字母序列中的字母a,b,c,d,e,就变成密文cahbicndae;间隔为2时的密文为chainbac,要求输入明文和间隔,从存放其它字母的序列(仅包含a,b,c,d,e)中依次取出对应字母插入到明文中,如果其它字母序列的字母取完,则从头再取,要求密文中最后一个字母一定是其它字母序列中的字母。

 

输入格式:

一个是明文字符串,一个是表示间隔的正整数。明文(不超过30个字符),间隔的取值范围是(1~5)。

 

输出格式:

密文(不超过60个字符)

 

输入样例:

china

1

 

输出样例:

cahbicndae

/* 字符串的处理 熟悉string的常用方法*/
#include "iostream"
#include "string"
using namespace std;
int main() {
	string s[5] = { "a","b","c","d","e" };
	string text1;
	int k;          // 间隔
	cin >> text1;
	cin >> k;
	int len = text1.length(); // 长度
	int p;          //总插入次数
	if (len % k == 0)
		p = len / k;
	else
		p = len / k + 1;
	int cnt = 0;  //插入计数
	int now = k;  //插入位置
	while (cnt < p) 
	{
		if
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值