给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零.就此写一个c++程序
时间: 2024-10-14 08:06:17 浏览: 120
为了编写一个C++程序,用于反转一个整数的各位数字并保持非零最高位条件,你可以使用字符串处理和数组操作来完成这个任务。下面是一个简单的示例程序:
```cpp
#include <iostream>
#include <string>
std::string reverseInteger(int num) {
if (num == 0) return "0"; // 如果输入是0,直接返回0
std::string str = std::to_string(num); // 将整数转换为字符串
std::reverse(str.begin(), str.end()); // 反转字符串
// 确保反转后的字符串第一个字符不是0
if (str[0] == '0') {
str.erase(0, 1);
if (str.empty()) return "0";
}
return str;
}
int main() {
int input;
std::cout << "请输入一个整数: ";
std::cin >> input;
std::string reversedStr = reverseInteger(input);
if (reversedStr == "0") {
std::cout << "反转后的数字为0" << std::endl;
} else {
std::cout << "反转后的数字为: " << reversedStr << std::endl;
}
return 0;
}
```
在这个程序中,我们首先检查输入是否为0,如果是,则直接返回0。然后,我们将整数转换成字符串,并使用`std::reverse`函数反转字符串。如果反转后的第一位是0,我们会删除它。最后,打印出反转后的结果。
阅读全文