1 条题解
-
0
#include <iostream> #include <string> int main() { std::string input; std::cin >> input; // 读取输入,例如 "1234=127" // 找到等号的位置 size_t equal_pos = input.find('='); if (equal_pos == std::string::npos) { std::cout << "Impossible!" << std::endl; return 0; } // 分割输入为左边和右边 std::string left = input.substr(0, equal_pos); std::string right = input.substr(equal_pos + 1); long long right_num = std::stoll(right); // 将右边的数字转为 long long 类型 // 遍历左边的数字,尝试插入加号 bool found = false; for (size_t i = 1; i < left.size(); ++i) { std::string left_part = left.substr(0, i); // 左侧部分 std::string right_part = left.substr(i); // 右侧部分 // 转换为数字 long long left_num = std::stoll(left_part) + std::stoll(right_part); // 判断是否相等 if (left_num == right_num) { // 输出结果 std::cout << left_part << "+" << right_part << "=" << right << std::endl; found = true; break; } } // 如果没有找到满足条件的组合 if (!found) { std::cout << "Impossible!" << std::endl; } return 0; }
- 1
信息
- ID
- 302
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 4
- 标签
- 递交数
- 5
- 已通过
- 4
- 上传者