【Python】有循环结构打印出100到999之间的水仙花数

1,水仙花数

所谓的水仙花数是指:一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身。 例如153,370,371,407等都是水仙花数,就拿153来说,153 = 1*1*1 + 5*5*5 + 3*3*3.
  问题:输出100~999之间的所有“水仙花数”。
  实现思路:
  根据“水仙花数”的特点来展开分析,某个三位数假设为item的个位,十位,百位上的数字判断它们的立方和是否等于item,若等于,则输出item,此过程是一个循环,只要item在(100,1000)之间,循环执行。
  现在来看item的各位数字如何获得。首先需要定义三个变量ge,shi,bai分别记录item的各位数字。
  对于一个三位数item,其百、十、个位数字为bai,shi,ge,则可知:bai*100+shi *10+ge *1=item
  百位数(bai):item//100等于其百位数字。
  十位数(shi):若对item有item//10,则可以得到item的百位和十位组成的一个两位数,如:153//10=15。再用这个两位数%10,便得到了十位数字shi。
  个位数(ge):上面已经得到item的百位和十位,易得个位数为item%10。

2,用for in 循环来实现代码如下

for item in range(100,1000):
    ge = item%10       #个位
    shi = item//10%10  #十位
    bai = item//100    #百位
   # print(ge,shi,bai)
#判断
    if(ge**3+shi**3+bai**3==item):
      print(item)

3,结果如下:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值