【问题描述】输入一个int型的整数num,逆向输出其各位数字,同时求出其位数以及各位数字之和。【输入形式】输入一个整数。 【输出形式】结果为三行,第一行为逆向数字,第二行为各位数字之和,第三行为数字位数。 【样例输入】1000 【样例输出】 0001 1 4
时间: 2024-10-22 16:24:16 浏览: 29
计算整数各位数字之和 C++中如何计算任何一个正整数的各位数字之和
要解决这个问题,我们可以使用C++编写一个简单的程序。首先,我们将读取用户的输入,然后将其转换为字符串以便于处理。接着,我们将遍历字符串中的每个字符(即每位数字),并计算它们的总和和位数。最后,我们将结果按照要求的形式输出。
```cpp
#include <iostream>
#include <string>
std::string reverseNumber(int num) {
std::ostringstream oss;
oss << num; // 将整数转为字符串
return oss.str(); // 返回逆序字符串
}
int sumOfDigits(const std::string& str) {
int sum = 0;
for (char digit : str) {
if (isdigit(digit)) { // 检查是否是数字字符
sum += digit - '0'; // 减去'0'获取数字值
}
}
return sum;
}
int countDigits(const std::string& str) {
return str.size(); // 返回字符串长度,即位数
}
int main() {
int num;
std::cout << "请输入一个整数:";
std::cin >> num;
std::string reversedStr = reverseNumber(num);
int sum = sumOfDigits(reversedStr);
int digitsCount = countDigits(reversedStr);
std::cout << "逆向数字:" << reversedStr << '\n';
std::cout << "各位数字之和:" << sum << '\n';
std::cout << "数字位数:" << digitsCount << '\n';
return 0;
}
```
当你运行这个程序时,按照样例输入`1000`,你会得到以下输出:
```
逆向数字:0001
各位数字之和:1
数字位数:4
```
如果你有其他关于C++编程的问题,请随时告诉我。
阅读全文