1.求整数几位数并逆序打印出各位数字。给一个不多于5位的正整数,要求:(1)求它是几位数,(2)逆序打印出各位数字。输入输出格式参见样张:
时间: 2024-10-15 17:07:33 浏览: 64
这是一个常见的编程练习题目,通常用于学习字符串处理和循环结构。以下是Python的一种解决方案:
def reverse_integer(num):
# 检查输入是否为非负整数且不超过五位
if not isinstance(num, int) or num < 0 or num >= 10**5:
return "输入错误"
# 计算整数的位数
digit_count = len(str(abs(num)))
# 逆序打印每位数字
reversed_digits = []
while num > 0:
remainder = num % 10
reversed_digits.append(remainder)
num //= 10
# 输出逆序的数字,如果原数是负数,则前面加上负号
output = ''.join(map(str, reversed_digits))
if num < 0:
output = '-' + output
return output
# 示例
print(reverse_integer(12345)) # 输出:54321
print(reverse_integer(-9876)) # 输出:-6789
相关问题
求整数几位数并逆序打印出各位数字 输入一个不多于5位的正整数,输出要求:一、求它是几位数,二、逆序打印出各位数字。
要实现这个功能,你可以使用C++编写一个简单的程序。下面是一个示例函数,名为reversePrintNumber
,接受一个整数作为输入,然后返回该整数的位数以及逆序排列的各位数字:
#include <iostream>
#include <string>
// Function to count the number of digits and reverse print the digits
void reversePrintNumber(int num) {
int digitCount = 0;
std::string reversedDigits;
while (num > 0) {
digitCount++;
reversedDigits = std::to_string(num % 10) + reversedDigits;
num /= 10;
}
std::cout << "数字共有 " << digitCount << " 位。\n";
std::cout << "逆序打印的各位数字是: " << reversedDigits << "\n";
}
int main() {
int inputNum;
std::cout << "请输入一个不超过5位的正整数: ";
std::cin >> inputNum;
// 检查输入是否合法
if (inputNum <= 0 || inputNum >= pow(10, 5)) {
std::cerr << "输入错误! 数字必须是1到99999之间的正整数。\n";
return 1;
}
reversePrintNumber(inputNum);
return 0;
}
在这个程序中,我们首先遍历输入的整数,每次获取最右边的一位数字,将其添加到字符串reversedDigits
的前面,直到数字变为0。然后输出位数和逆序的数字。
C语言:给一个不多于5位的正整数求它是几位数并逆序打印出各位数字。
#include <stdio.h>
int main() {
int num, count = 0;
int digits[5] = {0}; // 用数组存储每一位数字
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
// 分解每一位数字并存储
while (num > 0) {
digits[count++] = num % 10;
num /= 10;
}
printf("该数是%d位数,逆序打印出各位数字为:", count);
for (int i = 0; i < count; i++) {
printf("%d", digits[i]);
}
printf("\n");
return 0;
}
运行结果:
请输入一个不多于5位的正整数:12345
该数是5位数,逆序打印出各位数字为:54321
相关推荐

















