如何利用python写15行代码来解决C++88万行代码解决的问题?

 事情是这样的,偶然间看到这张有趣的图片,问题如图上的题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)

实现结果如图:

 

 

 

 

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的思路很明确

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值