设计一个算法,输入一个不多于5位的正整数,要求:(1)求出它是几位数;(2)分别打印出每一位数字;(3)按逆序打印出各位数字,例如原数为321,应输出123。请给出你的算法的文字描述,并用Python编写程序实现算法。只需在指定位置完成Python编程,并测试正确即可;
时间: 2024-02-21 18:57:31 浏览: 79
算法的文字描述如下:
1. 读取一个不多于5位的正整数num
2. 定义位数count为0
3. 进入循环,每次将num除以10,count加1,直到num为0
4. 将num重新赋值为输入的正整数
5. 定义变量i为0
6. 进入循环,每次将num对10取余,打印出余数,num除以10,i加1,直到i等于count
7. 将num重新赋值为输入的正整数
8. 定义空字符串res
9. 进入循环,每次将num对10取余,将余数转换为字符串后添加到res的末尾,num除以10,直到num为0
10. 打印出res
Python程序实现如下:
```python
num = int(input("请输入一个不多于5位的正整数: "))
# 计算位数
count = 0
while num != 0:
num //= 10
count += 1
# 重新赋值
num = int(input("请输入一个不多于5位的正整数: "))
# 打印每一位数字
i = 0
while i < count:
digit = num % 10
print(digit, end=" ")
num //= 10
i += 1
print()
# 逆序打印
num = int(input("请输入一个不多于5位的正整数: "))
res = ""
while num != 0:
digit = num % 10
res += str(digit)
num //= 10
print(res)
```
测试样例:
输入:
```
请输入一个不多于5位的正整数: 12345
请输入一个不多于5位的正整数: 12345
请输入一个不多于5位的正整数: 12345
```
输出:
```
5 4 3 2 1
54321
```
阅读全文