插入加密

5
插入加密(20分)

题目内容:

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


输入格式:

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


输出格式:

密文(不超过60个字符)


输入样例:

china

1


输出样例:

cahbicndae

时间限制:2000ms内存限制:32000kb

/* 字符串的处理 熟悉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 (now <= len) {
			text1.insert(now, s[cnt % 5]);
			now += (k+1);
			cnt++;
			len++;
		}
		else {
			text1 += s[cnt % 5];
			len++;
			cnt++;
		}
	}
	cout << text1 << endl;
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值