#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 22:33:51 浏览: 151
这段代码是一个解密函数,它接受一个整数数组作为参数,返回解密后的整数数组。解密过程如下:
1. 将原数组中第偶数个数的后一个数加入队列中。
2. 如果原数组长度为奇数,则将最后一个数加入队列中。
3. 依次取出队列中的数,加入解密后的数组中。
4. 如果队列中还有数,则将下一个数取出并加入队尾。
在主函数中,首先输入一个整数 n 表示数组长度,然后输入 n 个整数作为加密后的数字。接着调用解密函数 decrypt,将解密后的数组保存到 decrypted 中,并输出解密后的数字。
相关问题
#include <iostream> #include <vector> #include <algorithm> #include <queue> using namespace std; s
这段代码是C++语言中的头文件引入部分,用于在程序中引入iostream、vector、algorithm和queue等库,以便使用这些库中的函数和类。其中,iostream库提供了C++输入输出流的功能,vector库提供了可变大小的数组容器,algorithm库提供了常用的算法函数,queue库提供了队列容器的支持。通过这些库,可以方便地进行程序开发和数据处理。
解释代码# include < iostream > # include < string > # include < vector > # include < iomanip > using namespace std ;
这段代码是 C++ 中的预处理指令,用于引入头文件并进行命名空间声明。
- `#include <iostream>` 引入输入输出流库,用于控制台输入输出。
- `#include <string>` 引入字符串库,用于处理字符串操作。
- `#include <vector>` 引入向量库,用于动态数组操作。
- `#include <iomanip>` 引入输入输出流格式化库,用于格式化控制台输出。
`using namespace std;` 是命名空间声明,表示使用标准命名空间(std)中的所有函数和类,避免了每次使用时都要写 std:: 的麻烦。
阅读全文