事情是这样的,偶然间看到这张有趣的图片,问题如图上的题2,之前在学C语言的时候也碰到过这种类似的题目,语言是相通的,底层逻辑是一样的,那么用python做会更简单一些吗?这里直接上代码,自动化实现求任意一个正整数的位数和每个位置上的数,以及它逆置后的数。
a=int(input("输入一个正整数:"))
t=a
count=0
while t>1:
t/=10 #确定位数,一直除以10,每除一次代表一位,最后得到的数是小于1为判定条件
count+=1 #比如1000,除了4次10,得到0.1,count计数到4,代表其位数
else:
print("该正整数是%d位数"%count) #while后跟上else,代表正整数除到小于1了,就不执行while语句
for i in range(0,count):
number=(int(a/(10**i)))%10 #求每一个位置上的数,个位上的数直接求余10,十位先除以10,再int
print("第%d位上的数是:%d"%(i+1,number)) #强制转换,把小数部分抹去后求余,相当于得到个位数
a=list(str(a)) #求逆序,用到列表里面的reverse或者,sort函数,
a.reverse() #得到列表就要把整型转化为字符串然后再列表化,再reverse
a=int(''.join(a)) #得到了逆置后的列表要返回整型,先要用join得到字符串,再int转化
print("逆序后的正整数:",a)
实现结果如图: