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

    方法一:作比较

    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
    

    PS:遇到问题没人解答?需要Python学习资料?可以加点击下方链接自行获取
    note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76

    方法三:

    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)
    
  • 相关阅读:
    手机号码 正则表达式
    邮政编码的正则表达式
    对象为null,调用非静态方法产生空指针异常
    文件找不到异常(FileNotFoundException)
    数组下标越界异常解决方法
    空指针异常的解决方法
    需求:打印九九乘法表
    创建简单线程
    ·博客作业06--图
    博客作业05--查找
  • 原文地址:https://www.cnblogs.com/xxpythonxx/p/12051278.html
Copyright © 2011-2022 走看看