前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >条件判断与循环

条件判断与循环

作者头像
dogfei
发布2020-07-31 10:28:38
1K0
发布2020-07-31 10:28:38
举报
文章被收录于专栏:devops探索

1、给一个正整数,要求判断其位数,并且将该数的每一位数打印出来,分别按从为数从小到大和从大到小进行打印

分析:

例如一个正整数为:46127,该数为一个5位数的整数,我们想要的结果为7,2,1,6,4和4,6,1,2,7

如何获得每一位上的数?我们可以通过结合数学上的求商和求余数来解决,例如,我们发现规律:

  1. 第一步:46127 % 10 = 7,46127 // 10 = 4612
  2. 第二步:4612 % 10 = 2,4612 // 10 = 461
  3. 第三步:461 % 10 = 1,461 // 10 = 46
  4. 第四步:46 % 10 = 6,46 // 10 = 4
  5. 第五步:4 % 10 = 4,4 // 10 = 0

通过以上我们发现,我们将任意的整数与10做求模运算,便可以求出个位上的数,以此类推,我们只需要将求出的个位数去掉,转换为比之前的位数少一位的,然后再次对转换后的数进行再次与10的求模运算,依次执行此过程,便可求出我们所要的结果。

实例:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

num = int(input('pls enter your number: ')) if num >= 1000: if num >= 10000: count = 5 else: count = 4 elif num >= 10: if num >= 1000: count = 3 else: count = 2 else: count = 1 # % 求模运算,也就是求余数 # // 求商运算 # num = 46127 while num != 0: # num != 0 a = num % 10 # a = 7 num //= 10 # b = 4612 print(a) num = int(46127) for i in range(count): # num = 46127 count = 5 目的是为了计数用 n = num // 10 # 对46127求商,n = 4612 print(num - n * 10) # 46127 - 4612 * 10 = 7 num = n num = int(46127) for i in range(count): print(num % 10) num //= 10 # num = 46127 // 10, num = 4612

按从大到小依次打印的分析:

1 2 3 4 5 6

46127 // 10000 = 4,46127 % 10000 = 6127,10000 // 10 = 1000 6127 // 1000 = 6,6127 % 1000 = 127,1000 // 10 = 100 127 // 100 = 1,127 % 100 = 27,100 // 10 = 10 27 // 10 = 2,27 % 10 = 7,10 // 10 = 1 7 // 1 = 7,7 % 1 = 0,1 // 10 = 0 这里关键的地方是如何设定10000、1000、100、10、1等数,还有就是这个数是如何来的

实例:

1 2 3 4

num = int(46127) for i in range(count,0,-1): print(num // 10 ** (i - 1)) # 46127 // 10 ** (5 - 1) = 4, num = 46127 num = num % 10 ** (i - 1)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档