题目如下:
移位加密是密码学中一种非常经典、也是很重要的加密方法,学好移位加密对后面其他加密方法的学习有着至关重要的作用。使用 c++ 实现移位密码方法,然后对输入的明文字符串进行移位加密后打印输出。先读取输入 K,表示移位密码的参数。然后读取输入的一个只含小写字母的字符串。要求你输出该字符串经过 K 位加密之后的加密串,其中串的长度在 100 以内,0<=K<=25。
模运算
假设a和b均为整数,m是一正整数。若m整除b−a,则可将其表示为:
a≡b(mod m)
该式读作“a与b模m同余”,正整数m称为模数。
下面给出计算一组数据中符合指定模数的同余的数字对,具体 C++ 代码示例如下:
constexpr int mod=9; // 模数 mod 取值为9
int a[10]= {2,11,12};
for(size_t i=1; i<3; i++) // 循环遍历数组 a 中所有的数字对
if((a[i]-a[i-1])%mod==0) // 判断mod是否可以整除两数之差
cout<<a[i-1]<<"与"<<a[i]<<"模"<<mod<<"同余"<<endl;
输出:2与11模9同余
上述代码通过遍历数组 a 中的所有数字对,判断模数能否整除数字对中两数之差,从而找出符合条件的数字对。
代码如下:
#include<bits/stdc++.h>
using namespace std;
char S[100];
int main()
{
int K;
scanf("%d",&K);
cin>>S;
for(int i=0; i<strlen(S); i++)
printf("%c",'a'+((S[i]-'a'+K)%26));
}