用Python完成寻找水仙花数

首先说一下我是Python的初学者,如果有任何不正确或可以改进的地方,请大家多多包容

所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身,例如153=1**3+5**3+3**3,理解了题意后我们就可以明白找到水仙花的重点就在于将一个三位数的百位,十位,个位分别用一个变量保存起来,因此我们会用到各种不同的运行符号

误区代码

但问题是在取三位数的百位,十位和个位的时候我发现Python的计算有时是不准确的,它既有整数又有浮点数,更离谱的是还有0.0999994这样的数,然后我在网上查了一下发现Python在进行运算的时候使用的是二进制,所以在进行小数运算的时候经常会出现一些神奇的错误,明白了原因之后,我为了取到精确的整数,尝试了各种不同的方法,比如用Decimal方法将数字转换为10进制再进行取值,发现取到的十位数还是小数

没办法最后胡乱搞,发现运用“//”进行地板除就能取到精确的整数,有了精确的整数就能得到正确是水仙花数,然后上网查了一下发现:

" / "  表示浮点数除法,返回浮点结果;
" // " 表示整数除法,返回不大于结果的一个最大的整数

最后大概说一下思路,用循环取100-1000之间的数,然后用if语句进行判断是否为水仙花数,然后添加到一个数组中,最后打印这个数组

正确代码

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值