初学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例-案例23 输出菱形

初学python算法100例-案例22 居中输出三角形

初学python算法100例-案例17 输出并计算n个 逐项数字

初学python算法100例-案例9 间隔1秒输出结果

初学python算法100例-案例26 反序输出 并没有那么难

初学python算法100例-案例29 判断回文数