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)
欢迎补充~
Python:给定一个不超过5位的正整数,判断有几位的更多相关文章
- 用Python6种方法:给定一个不超过5位的正整数,判断有几位
方法一:作比较 a=int(input(">>>>")) if a<10: print(1) elif a<100: #第一个条件已经过滤了大于 ...
- python 实现整数的反转:给定一个整数,将该数按位逆置,例如给定12345变成54321,12320变成2321.
给定一个n位(不超过10)的整数,将该数按位逆置,例如给定12345变成54321,12320变成2321. # 第一种方法,使用lstrip函数去反转后,数字前面的0 import math num ...
- 给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换)
需求:给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换) 如: a 不替换 b 不替换 ab 不替换 ba 不替换 aba 不替换 aab 替换为 ...
- 给定一个整数实现奇偶bit位互换
1.分别取出所有奇数bit位和偶数bit位 0x55555555(对应二进制奇数bit位为1,偶数bit位全为0)&num 0xaaaaaaaa(对应二进制即偶数bit位为1,奇数bit位全为 ...
- 任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0。
题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0. 解法一:暴力求解.从1开始查找M,然后判断M*N=X这个数字是否只含有0,1. 解法二:由 ...
- 【Python】如何基于Python写一个TCP反向连接后门
首发安全客 如何基于Python写一个TCP反向连接后门 https://www.anquanke.com/post/id/92401 0x0 介绍 在Linux系统做未授权测试,我们须准备一个安全的 ...
- 用Python写一个简单的Web框架
一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...
- 给定一个整数N,找出一个比N大且最接近N,但二进制权值与该整数相同 的数
1,问题描述 给定一个整数N,该整数的二进制权值定义如下:将该整数N转化成二进制表示法,其中 1 的个数即为它的二进制权值. 比如:十进制数1717 的二进制表示为:0000 0110 1011 01 ...
- 课堂练习:给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
题目 1 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. 2 要求: (1) 写一个函数 f(N) ,返回1 到 N 之间出现的“1”的个数.例如 f(12) ...
随机推荐
- Docker 前沿概述
目录 Docker 前沿概述 什么是Docker? Docker的基本概念 容器(Container) -- 镜像运行时的实体 镜像(Image) -- 一个特殊的文件系统 仓库(Repository ...
- laravel新项目报错 No application encryption key has been specified.
解决办法, 若文件根目录下没有 .env 1..env.example 改名使用命令 copy 修改为 .env 2.使用命令 php artisan key:generate 获取密码,自动保存到 ...
- pythonday01计算机初步认识
1.计算机的初步认识 常见的操作系统: win:xp,win7,win8,win10,windows server linux:centos图形化界面差,ubuntu个人开发,图形界面好,redhat ...
- 1.Apache的配置
1.phpStudy的目录结构 1.1phpStudy的主目录路径:F:\phpStudy 1.2Apache的主目录路径 2.Apache启动和停止方法 2.1.通过任务栏phpStudy 图片进行 ...
- 种族并查集模板题分析 -----P2024 [NOI2001]食物链
本文参考了:洛谷p2024题解 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都 ...
- 2019-SUCTF-web记录
1.web1-chkin 首先发现服务器中间件为nginx,并且fuzz上传过滤情况,是黑名单,带ph的全部不能上传切对文件内容中包含<?进行过滤,并且服务器对文件头有exif_type的判断, ...
- 2014-09~11Removeapp配置篇
金蝶ERP软件 Windows REMOVEAPP 功能需求:将服务器端金蝶客户端软件直接在本地实现,只需输入服务器密码即可启动该软件 配置需求:可用的金蝶软件,SERVER2008 或更高(必须激 ...
- 基于python的mysql复制工具
一简介 python-mysql-replication 是由python实现的 MySQL复制协议工具,我们可以用它来解析binlog 获取日志的insert,update,delete等事件 ,并 ...
- Qt无边框窗体-最大化时支持拖拽还原
目录 一.概述 二.效果展示 三.demo制作 1.设计窗体 2.双击放大 四.拖拽 五.相关文章 原文链接:Markdown模板 一.概述 用Qt进行开发界面时,既想要实现友好的用户交互又想界面漂亮 ...
- d3.js V5版本在vue里使用 自定义节点图片
var width = this.$refs.topInfo.offsetWidth; var height = this.$refs.topInfo.offsetHeight; var img_w ...