zoukankan      html  css  js  c++  java
  • Python:给定一个不超过5位的正整数,判断有几位

    方法一:作比较

    [root@python markPy]# cat five.py 
    #!/usr/bin/python3
    a=int(input(">>>>"))
    if a<10:             
        print(1)
    elif a<100:   #第一个条件已经过滤了大于9,所以这里区间是11到100
        print(2)
    elif a<1000:
        print(3)
    elif a<10000:
        print(4)
    else:
        print(5)

    方法二:使用整除实现,除完后如果是个0或不是个0,这种方法引入了计算,效率会降低,所以能加就不要减,能乘就不要除,能不计算就不计算

    i = int(intput('>>>')
    if i // 10000:
        print(5):
    elif i // 1000:
        print(4)
    elif i // 100:
        print(3)
    elif i // 10:
        print(2)
    else:
        print(1)
    
    分析:假设是在5位的情况下,不考虑其他状况
    In [1]: 6666 // 10000
    Out[1]: 0                除以10000为零证明是小于5位数
    
    In [2]: 6666 // 1000
    Out[2]: 6                但是如果能被1000整除,它就是一个4位数
    
    In [3]: 6666 // 100
    Out[3]: 66
    
    In [4]: 6666 // 10
    Out[4]: 666
    
    In [5]: 6666 // 1
    Out[5]: 6666

    方法三:

    a=int(input(">>>"))
    if a<0:
        print("Format is wrong")
    elif a<100000:    ##限定5位
        if a<10:
            print(1)
        elif a<100:
            print(2)
        elif a<1000:
            print(3)
        elif a<10000:
            print(4)
        else:   
            print(5)
    else:
        print("请输入一个不超过5位的数")

    方法四:字符串处理实现

    #!/usr/bin/python3
    nnumber=input(">>>>")
    length=len(nnumber)
    if length>4:
        print(5)
    elif length>3:
        print(4)
    elif length>2:
        print(3)
    elif length>1:
        print(2)
    else:
        print(1)

    方法五:折半实现

    #!/usr/bin/python3
    number = int(input("number >> "))
    if number >= 100:       ##直接从100开始折
        if number >= 10000:
            print("5")
        elif number >= 1000:
            print("4")
        else:
            print("3")
    else:
        if number >= 10:
            print("2")
        else:
            print("1")

    方法六:math实现,这种方法比除法的更慢,如果循环100万次就很明显

    number=int(input("输入一个不超过5位的正整数: ")
    if a<=0 or a>=100000:
        print('请输入一个不超过5位的正整数')
    else:
        import math
        b=int(math.log10(a)+1)
        print(b)
    

    欢迎补充~

      

  • 相关阅读:
    如何在typescript中引入jquery
    Project 'com.cooldatasoft:spring-boot-starter-parent:2.3.10.RELEASE' not found
    FTP服务器需要开几个端口
    c# 创建 windows 托盘图标及上下文菜单
    postgresql 查询表注释 和 字段注释
    idea 使用技巧识记
    c# 基元数据类型占用字节数
    proxifier 配合 fiddler 网络监控 使用方法备忘
    c# 反射备忘
    Delphi IdFTP[3] TIdFTP.Connect、IdFTP.ReadTimeout
  • 原文地址:https://www.cnblogs.com/reid21/p/10421544.html
Copyright © 2011-2022 走看看