题目:
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
问题分析
要会判断用户输入的是几位数,并将每一位数分解出来
程序可以利用取整和取余的方法进行判断
例子:假设a为5位数,请问如何取得最高位?
最高位为a//10000,直接取整;
第4位呢?a%10000//1000,先取余,再取整;
主要逻辑如下:
用户先输入一个数
求出第5位数a
求出第4位数b
求出第3位数c
求出第2位数d
求出第1位数e
通过if-elif-else判断,
各位是否为0,再定是几位数,并逆序输出
具体代码如下:
x=int(input('请输入一个数:\n'))
a=x//10000
b=x%10000//1000
c=x%1000//100
d=x%100//10
e=x%10
if a!=0:
print('5位数:',e,d,c,b,a)
elif b!=0:
print('4位数:',e,d,c,b)
elif c!=0:
print('3位数:',e,d,c)
elif d!=0:
print('2位数:',e,d)
elif e!=0:
print('1位数:',e)
代码分析
注意,此代码最多只能判断5位数
input(),接受用户输入;通过int(),将用户输入的数转化为整数
依次计算出高位第5位到低位第1位的a、b、c、d、e
最后判断各位是否不等于0。若等于0说明此位没有
代码输出结果:
请输入一个数:
459
3位数: 9 5 4
更多精彩内容,请关注公众:Python提升课堂