📄 main.cpp
字号:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <malloc.h>
int gcd(int a, int b) /*辗转相除法求a,b的最大公因数*/
{
int k = 0;
do
{
k = a%b;
a = b;
b = k;
}while(k!=0);
return a;
}
int Ni(int a, int b) /*求a相对于b的逆*/
{
int i = 0;
while(a*(++i)%b!=1);
return i;
}
void Affine() /*仿射密码*/
{
char c[100];
int length, i=0, ka=0, kb=0, tmp;
clrscr();
cout<<"Please input primal sentence: ";
gets(c);
length = strlen(c);
cout<<"Input the key(2 numbers): "<<endl;
cin >>ka>>kb;
getchar();
if(gcd(ka,26)!=1)
{
cout<<"The value of the key is error"<<endl;
return;
}
for(i=0; i<length; i++)
{
if(c[i]>96&&c[i]<123)
c[i] = (ka*(c[i]-97)+kb)%26+65;
else if(c[i]>64&&c[i]<91)
c[i] = (ka*(c[i]-65)+kb)%26+65;
}
cout<<"Result is:"<< c <<endl;
for(i=0; i<length; i++)
{
if(c[i]>64&&c[i]<91)
{
tmp = Ni(ka,26)*((c[i]-65)-kb);
if(tmp<0)
c[i] = tmp%26+26+97;
else
c[i] = tmp%26+97;
}
}
cout<<"After translated the sentence,we can see the primal sentence as follow:"<< c;
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -