#include <iostream> #include <queue> #include <vector> using namespace std; // 解密函数 vector<int> decrypt(vector<int> encrypted) { queue<int> q; // 将第偶数个数加入队列 for (int i = 0; i < encrypted.size(); i += 2) { q.push(encrypted[i + 1]); } int n = encrypted.size(); // 如果数组长度为奇数,将最后一个数加入队列 if (n % 2 == 1) { q.push(encrypted[n - 1]); } vector<int> decrypted; // 依次取出队列中的数,加入 decryted 数组 while (!q.empty()) { decrypted.push_back(q.front()); q.pop(); // 如果队列中还有数,将下一个数取出并加入队尾 if (!q.empty()) { int x = q.front(); q.pop(); q.push(x); } } return decrypted; } int main() { int n; cin >> n; vector<int> encrypted(n); // 输入加密后的数字 for (int i = 0; i < n; i++) { cin >> encrypted[i]; } // 解密数字 vector<int> decrypted = decrypt(encrypted); // 输出解密后的数字 for (int i = 0; i < decrypted.size(); i++) { cout << decrypted[i] << " "; } cout << endl; return 0; }
时间: 2024-02-10 16:33:51 浏览: 10
这段代码是一个解密函数,它接受一个整数数组作为参数,返回解密后的整数数组。解密过程如下:
1. 将原数组中第偶数个数的后一个数加入队列中。
2. 如果原数组长度为奇数,则将最后一个数加入队列中。
3. 依次取出队列中的数,加入解密后的数组中。
4. 如果队列中还有数,则将下一个数取出并加入队尾。
在主函数中,首先输入一个整数 n 表示数组长度,然后输入 n 个整数作为加密后的数字。接着调用解密函数 decrypt,将解密后的数组保存到 decrypted 中,并输出解密后的数字。
相关问题
#include<iostream> #include<cstdio> using namespace std;是什么意思
#include<iostream> #include<cstdio> using namespace std; 是C++中的预处理指令,用于引入头文件和命名空间。
1. #include<iostream> 是引入iostream头文件,其中包含了输入输出流的定义,例如cout和cin等。
2. #include<cstdio> 是引入cstdio头文件,其中包含了C语言标准输入输出函数的定义,例如printf和scanf等。
3. using namespace std; 是使用std命名空间,std是C++标准库的命名空间,其中包含了很多常用的函数和类。
这些预处理指令的作用是为了在程序中能够使用输入输出流和标准库函数,使得程序更加方便和简洁。
#include <iostream> #include <vector> #include <algorithm>
#include <iostream> 是C++中的一个头文件,它包含了输入输出流的相关函数和对象,例如cout和cin。通过包含这个头文件,我们可以在程序中使用标准输入输出流来进行输入和输出操作。
#include <vector> 是C++中的一个头文件,它定义了一个名为vector的容器类模板。vector是一个动态数组,可以存储不同类型的元素,并且可以根据需要动态调整大小。
#include <algorithm> 是C++中的一个头文件,它包含了一些常用的算法函数,例如排序、查找、替换等。通过包含这个头文件,我们可以在程序中使用这些算法函数来对容器中的元素进行操作。