📄 栏栅解密.cpp
字号:
// 作业:栏栅解密算法
// 作者:02103409班 10号 郭卫军
// 日期:2005.3.26
//#include "stdafx.h"
#include<iostream.h>
#include<math.h>
void Input(char p[],int &n){ //输入密文
char chdata;
int i;
i=0;
cin>>chdata;
while(chdata!='/'){
p[i]=chdata;
i++;
cin>>chdata;
}
n=i;
}
void Public1(char A[],int I,int K)//当密文长度能被密钥整除时
{
char P[20][20];
int a;
a=0;
for(int k=0;k<K;k++)
for(int i=0;i<I;i++){
P[k][i]=A[a];
a++;
}
for(int i=0;i<I;i++)
for(int k=0;k<K;k++)
cout<<P[k][i];
cout<<endl;
}
void Public2(char A[],int I,int J,int K,int N)//当密文长度不能被密钥整除时
{
char P[20][20];
int a;
a=0;
for(int k=0;k<J;k++)
for(int i=0;i<=I;i++){
P[k][i]=A[a];
a++;
}
for(int b=J;b<K;b++)
for(int i=0;i<I;i++){
P[b][i]=A[a];
a++;
}
for(int i=0;i<I;i++)
for(int k=0;k<K;k++)
cout<<P[k][i];
for(int c=0;c<J;c++)
cout<<P[c][i];
}
int main(int argc, char* argv[])
{
char Secret[50];
int n,m,div;
int key;
cout<<"*************************************************************"<<endl;
cout<<"注意:输入密文时,输入斜杠'/'后,输入结束."<<endl;
cout<<"*************************************************************"<<endl;
cout<<"请输入密文字符:"<<endl;
Input(Secret,n);
cout<<"输入密钥:"<<endl;
cin>>key;
cout<<endl;
div=n/key;
m=n % key;
cout<<"解密后明文是:";
if(!m)
Public1(Secret,div,key);
else
Public2(Secret,div,m,key,n);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -