#include using namespace std;

string decrypt(string str, int k) { int n = str.length(); string result = ""; for (int i = 0; i < n; i++) { char c = str[i]; int offset = k % 26; // 对偏移量取模,使其在0到25之间 if (c >= 'A' && c <= 'Z') { // 如果是大写字母,则进行偏移操作 c = c - offset; if (c < 'A') { // 如果偏移后小于'A',则循环回到'Z' c = c + 26; } } result += c; } return result; }

int main() { string str; int k; cin >> str >> k; cout << decrypt(str, k) << endl; return 0;

凯撒密码在密码学中恺撒密码是一种最简单且最广为人知的加密技术。它是一种替换加密的技术明文中的所有字母都在字母表上向后或向前按照一个固定数目进行偏移后被替换成密文。例如当偏移量是3 的时候所有的字母 A 将被替换成 DB 变成E以此类推但是最后的 X 替换成了 AY 替换成 BZ 替换成 C 。这个加密方法是以罗马共和时期恺撒的名字命名的当年恺撒曾用此方法与其将军们进行联系。现在给定一个已经加密的大

原文地址: http://www.cveoy.top/t/topic/i1Bw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录