初学python算法100例-案例28 逆序输出每位数字
Posted CSDN专家-小兔子编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学python算法100例-案例28 逆序输出每位数字相关的知识,希望对你有一定的参考价值。
题目:等差数列递归求法
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
解法1 常规思路
程序分析
1、逐个获取每一位数字
2、从高位到低位依次和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)
else:
print ("1 位数:",e)
运行结果
请输入一个数:
345
3 位数: 5 4 3
请输入一个数:
89854
5 位数: 4 5 8 9 8
解法2 while循环
程序分析
1、只要while循环条件不等于0
2、依次获取数字的每位数(低到高)
源程序
n = int(input("请输入一个数:"))
x = []
i = 0;
while(n != 0):
x.append(n % 10)
i += 1
n //= 10
print("该数有 %d 位\\n" %i )
print("逆序为:")
print( x[::] )
运行结果
请输入一个数:89843
该数有 5 位
逆序为:
[3, 4, 8, 9, 8]
请输入一个数:6445
该数有 4 位
逆序为:
[5, 4, 4, 6]
解法3 列表
程序分析
1、将输入的数转换为列表
2、通过列表len和reverse函数获取相应的值
源程序
num = list(input('输入一个最多5位的数字:'))
print("该数有 %d 位\\n" %len(num))
num.reverse()
print("逆序为:")
for i in range(len(num)):
print(num[i], end=' ')
运行结果
输入一个最多5位的数字:55645
该数有 5 位
逆序为:
5 4 6 5 5
输入一个最多5位的数字:2342
该数有 4 位
逆序为:
2 4 3 2
还有更多的方法,欢迎大家留言一起探讨学习
以上是关于初学python算法100例-案例28 逆序输出每位数字的主要内容,如果未能解决你的问题,请参考以下文章
初学python算法100例-案例17 输出并计算n个 逐项数字