水仙花数python代码多种方式_水仙花数的三种解决方法(Python实现)
先来了解一下什么是水仙花数。水仙花数是这样一个三位数:它的个位数、十位数、百位数的三次方之和,等于它自身。例如,153就是一个水仙花数,因为153=1^3+5^3+3^3。470也是一个水仙花数,因为470=4^3+7^3+0^3。
我们今天的任务就是,编程求100到999之间所有的水仙花数。
那么这个题目的关键就是,给定一个三位数abc,如何获得它的个位数c,十位数b,百位数a?
我们先来看第一种解决方案,也是最主流的解决方法:数位分离。
以153为例,我们先看,如何获得它的个位数3?只要%10就可以了:
153%10=3
通过模10运算,我们将个位数3分离了出来。
那么如何分离十位数5?先将十位数挪到个位,再利用%10,不就可以分离出来了吗?
通过除以10向下取整,可以将十位数挪到个位上来:
153//10=15
再利用模运算分离个位上的10即可:
15%10=5
这样我们就获得了十位数5.
同理,如果想得到153的百位数,将153除以100向下取整即可:
153 // 100 = 1
这就是数位分离的思想,先得到要验证的总数,再将各个位数分离出来。
代码实现如下:
for num in range(100,1000):
hundred=num//100
ten=(num//10)%10
single=num%10
if num==hundred**3+ten**3+single**3:
print('%d是一个水仙花数'%num)
这种方法逻辑很清晰,不过若是没见过这种解法的人,第一次怕是想不到数位分离的方法。其实,初学者更容易理解顺向思维的解法。
设个位数为a,十位数为b,百位数为c,则总数为a+10b+100c
判断a^3+b^3+c^3 == a+10b+100c即可。
for a in range(10):
for b in range(10):
for c in range(1,10):
sum = a + 10*b + 100*c
if a**3 + b**3 + c**3 == sum:
print("%d是一个水仙花数"%sum)
还有一种方法,可以利用字符串的特性,轻松地实现三个位数上的提取:
先将这个三位数转换成字符串,通过下标就可以提取个位、十位、百位数。再将提取出的字符转换成int型即可。
代码如下:
for num in range(100,1000):
s=str(num)
hundred=int(s[0])
ten=int(s[1])
digit=int(s[2])
if num==hundred**3+ten**3+digit**3:
print(num)
水仙花数python代码多种方式_水仙花数的三种解决方法(Python实现)相关推荐
- 执行python代码的方式_涨见识了,在终端执行 Python 代码的 6 种方式!
译者:豌豆花下猫@Python猫 为了我们推出的 VS Code 的 Python 插件 [1],我写了一个简单的脚本来生成变更日志 [2](类似于Towncrier [3],但简单些,支持 Mark ...
- 应用程序错误电脑黑屏_电脑运行程序出现APPCRASH错误的三种解决方法
好多小伙伴说电脑在运行程序时出现appcrash错误,导致软件无法正常运行,其实电脑是很复杂的程序代码设计的,遇到一些奇怪的问题也不奇怪,系统运行程序出现APPCRASH错误,很多新手用户都不知道怎么 ...
- 使用小乌龟TortoiseGit快速解决代码冲突的三种解决方法:
使用小乌龟TortoiseGit快速解决代码冲突的三种解决方法: 1.Resolved:手动查看并解决完冲突以后使用. 2.Resolve conflict using "CHERRY_PI ...
- python中保留小数_python保留小数位的三种实现方法
前言 保留小数位是我们经常会碰到的问题,尤其是刷题过程中.那么在python中保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此这里介绍几种比较简单实用的保留小数位的方法: 方法一:fo ...
- java url 传值乱码问题_解决URL传递中文时出现乱码问题(三种解决方法)
一.问题场景 一般在使用下面几种使用场景情况下,传递参数为中文时,接收得到的值都有可能乱码,具体如下: 1.直接在浏览器使用url地址访问 2.页面提交form表单时,method设置为GET 3.使 ...
- python交互式方式、代码文件方式_涨见识了,在终端执行 Python 代码的 6 种方式
原作:BRETT CANNON 译者:豌豆花下猫@Python猫 英文:https://snarky.ca/the-many-ways-to-pass-code-to-python-from-the- ...
- python代码文件方式_关于.py文件的详细介绍
这篇文章主要给大家介绍了在Python中.py文件打包成exe可执行文件的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧.前言最近做了几个简单的爬虫pytho ...
- python 代码转程序_如何用pyinstaller把自己编写的python源代码转换成可执行程序?...
昨天慢步熬夜写了一篇干货满满的文章,不知道什么原因,文章并未被推荐. 今天再来换个方式写一次. 把自己编写的python源代码转换成可执行程序 笔者继续用自编的<货币兑换程序3.0>为例. ...
- python编程剪刀石头布思路_剪刀石头布小习题三种语言python2、php、go代码
剪刀石头布小习题三种语言python2.php.go代码 # coding:utf-8 """ python核心编程6-14习题的解题思路 设计一个"石头,剪子 ...
最新文章
- Fedora 32 因 Bug 将推迟发布
- oracle单表数据量上亿_MySQL数据库中,数据量越来越大,有什么具体的优化方案么?...
- kindle 3快捷键
- 现代软件工程讲义 11 项目管理 - 事后诸葛亮会议
- java http2_探索HTTP/2: HTTP 2协议简述(原)
- java数组代表unicode值么,02-Java的数组
- css的3d注意事项
- HTML项目代码编写规范
- impala查询数据与hive的查询数据比对(数据的校验)
- 学习python3(一)
- Kronecker 定理
- JavaScript·函数
- matlab矩阵乘法不同行,矩阵乘法在numpy/matlab/数学上的不同
- Vant(有赞)UI框架爬坑记——图片轮播+预览
- SylixOS --- RMS调度详解
- Console密码恢复出厂设置
- 技术经理成长复盘-处理线上问题
- python抢优惠券程序_python3 优惠券查询GUI程序
- html设置字段只读,html怎么设置只读
- rstudio 修改代码间距_R语言入门:使用RStudio的基本操作
热门文章
- php验证码无法验证问题,php无法显示验证码
- 基于medianflow的半自动标注数据程序
- 服务器硬盘插拔原理拆解,如何正确拆除在 ServeRAID适配器控制着的热插拔硬盘...
- 论文笔记--Self-Supervised Learning of 3D Human Pose using Multi-view Geometry(利用多视角几何学对三维人类姿势进行自我监督学习)
- linux双网卡网桥转发,Linux网桥实现
- Windows 系统上查询 NVIDIA GPU 型号、CUDA 版本和驱动程序版本
- v.douyin.com生成制作抖音缩短口令网址php接口方法
- 搭建游戏平台用哪里的高防服务器比较好
- 【Matlab瑕疵检测】阙值瓶盖瑕疵检测【含源码 730期】
- 计算机专业必须知道的东西——C语言的发展