插入加密(c++)
阿新 • • 發佈:2019-01-28
題目內容:
插入式加密是在明文字母中按照指定間隔插入另一些字母以形成密文。例如對明文china,在間隔為1的位置插入其它字母序列中的字母a,b,c,d,e,就變成密文cahbicndae;間隔為2時的密文為chainbac,要求輸入明文和間隔,從存放其它字母的序列(僅包含a,b,c,d,e)中依次取出對應字母插入到明文中,如果其它字母序列的字母取完,則從頭再取,要求密文中最後一個字母一定是其它字母序列中的字母。
輸入格式:
一個是明文字串,一個是表示間隔的正整數。明文(不超過30個字元),間隔的取值範圍是(1~5)。
輸出格式:
密文(不超過60個字元)
輸入樣例:
china
1
輸出樣例:
cahbicndae
時間限制:2000ms記憶體限制:32000kb
#include<iostream>
#include<cstring>
using namespace std;
int main() {
string s[5] = { "a","b","c","d","e" };
string text1,text2;
int k;
cin >> text1;
cin >> k;
int len = text1.length();
int p;
if (len % k == 0)
p = len / k;
else
p = len / k + 1;
for(int i =0;i<p;i++){
text2 += (text1.substr(i*k,k) + s[i%5]);
}
cout << text2 << endl;
return 0;
}