原始题目
第29题
现在将题目升级一下,任给一个正整数,判断位数,并逆序输出
方法1思路分析:输入一个正整数,利用循环作地板除,直到商为0,并记录除了多少次,则可以判断这个正整数有几位。逆序输出可以求%10的余数,各次余数分别为个位,十位,百位...用列表记录,最后打印
- 方法1源代码:
#方法1
x = eval(input("输入一个正整数:\n")) #此处省略是否为正整数的判断
print(x,end='')
#用n记录数字x的位数,用lst记录%10的余数
n = 0
lst = []
while x != 0:
lst.append(x % 10)
x //= 10
n += 1
print("是{}位数".format(n))
print(lst)
- 运行结果:
输入一个正整数:
102030
102030是6位数
[0, 3, 0, 2, 0, 1]
方法2思路分析:用数据类型转化的方法实现位数转化和逆序输出
- 方法2源代码:
#方法2
x = input("输入一个正整数:\n") #此处省略是否为正整数的判断
n = len(x)
s = list(reversed(x))
print("{}是{}位数".format(x,n))
print(s)
- 运行结果:
输入一个正整数:
102030
102030是6位数
['0', '3', '0', '2', '0', '1']