c++ 从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号)。例如,输入-123,则忽略符号,由123分离出其百位1、十位2、个位3,然后计算3*100+2*10+1=321,并输出321。
时间: 2024-09-12 20:11:19 浏览: 112
从键盘输入一个三位整数,逆序输出。如输入123,输出321。
在C++中,你可以通过以下几个步骤实现这个功能:
1. 首先,我们需要获取用户输入的三位数及其正负号。可以使用`std::cin`来读取用户的输入。
```cpp
int num;
char sign;
std::cout << "请输入一个3位数(包括正负号):";
std::cin >> sign >> num; // 确保num是一个整数
```
2. 接着,我们需要处理正负号。如果输入的是负数,你需要取绝对值,然后再转换回字符串形式以便按位操作。
```cpp
if (sign == '-') {
num = -num;
}
```
3. 将数字转换为字符串,便于提取每一位。我们可以创建一个临时变量存储每位数字。
```cpp
std::string strNum = std::to_string(num);
```
4. 对字符串进行遍历,将每一位乘以相应的权重(100, 10, 和 1),并将结果累加起来。
```cpp
int reverseNum = 0;
for (size_t i = 0; i < strNum.length(); ++i) {
int digit = strNum[i] - '0';
reverseNum += digit * pow(10, (strNum.length() - i - 1));
}
```
5. 最后,输出计算得到的逆序数。
```cpp
std::cout << "逆序数是:" << reverseNum << std::endl;
```
完整代码示例:
```cpp
#include <iostream>
#include <cmath>
int main() {
int num;
char sign;
std::cout << "请输入一个3位数(包括正负号):";
std::cin >> sign >> num;
if (sign == '-num;
}
std::string strNum = std::to_string(num);
int reverseNum = 0;
for (size_t i = 0; i < strNum.length(); ++i) {
int digit = strNum[i] - '0';
reverseNum += digit * pow(10, (strNum.length() - i - 1));
}
std::cout << "逆序数是:" << reverseNum << std::endl;
return 0;
}
```
阅读全文