c++代码,有一串被加密过的数字,解密规则如下:将第一个删除,第二个也删除,第三个放在数字末端,以此类推,删除的数字将会组成一个新数字,这就是解密后的数字。
时间: 2024-09-07 16:03:20 浏览: 28
在C++中,我们可以创建一个函数来处理这种加密解密操作。首先,我们需要存储原始字符串和一个临时数组来存放删除的数字。然后按照规则依次处理:
```cpp
#include <string>
#include <vector>
std::string decrypt(const std::string& encrypted) {
std::vector<int> deleted_numbers;
for (size_t i = 0; i < encrypted.length(); ++i) {
if (i % 2 == 1) { // 每隔一个字符取一个
deleted_numbers.push_back(encrypted[i] - '0'); // 字符转换为整数
}
}
// 删除并拼接原字符串
std::string decrypted = encrypted.substr(1);
for (int num : deleted_numbers) {
decrypted.insert(decrypted.end(), to_string(num).c_str()); // 将数字添加到末尾
}
return decrypted;
}
// 示例
int main() {
std::string encrypted = "123456789"; // 假设这是加密后的字符串
std::string decrypted = decrypt(encrypted);
std::cout << "解密后的数字是: " << decrypted << std::endl;
return 0;
}
```
在这个例子中,`decrypt` 函数会按照给定的规则解密字符串,并返回结果。如果输入的 `encrypted` 是 `"123456789"`,那么输出将是 `"345678921"`。
阅读全文