利用for循环如何判定是水仙花数

本文介绍如何使用Python编程语言通过三层循环判断100到999之间的水仙花数,即一个三位数其各位数字的立方和等于该数本身。文中详细解释了循环结构及判定条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  水仙花数业内的大家可能听说过,但是对于初学者来讲,对于水仙花数还是比较陌生的。

首先要知道的是水仙花数的计算公式:153=1**3+5**3+3**3:

如何去判定这个数是否为水仙花数,最好的办法就是用for内嵌循环了,因为涉及到了公式所以很多数学逻辑不是很好的兄台,就尴尬了,其实有一个比较简单的数学逻辑来运算,如设定一个1-999的水仙花数, 程序如下:

for x in range(1,10):  #百位数的计算
  for y in range(1,10):#十位数的计算
    for z in range(1,10):#个位数的计算
      i=x*100+y*10+z*1
        if x**3+y**3+z**3==i:
          print(i)

   那么这段代码首先是区分开来首先算出个百位,十位,个位的数,在进行下一步的判定。

举例说明:

for x in range(1,10): #外循环第一层循环 x=1

for y in range(1,10)# #内循环环第二层循环 y=1

    for z in range(1,10): #第三层循环第一层循环 z=1

那么现在这个结构就是 x=1,y=1 z =1,这个三个数字分别的站位不同 x是百位,y的十位z是个位,但是我们要求是100-999的数所以下一步我们要这么做,将xyz这三个值根据站位来相乘并相加x*100+y10+z*1那么现在三个(xyz)循环是111,一个变量,方便下面的程序调用。i=x*100+y*10+z*1

我们要给这段表达式设置刚开始我们说了水仙花数的计算公式是每个值的三次方,下面我们就可以直接判定:

if x**3+y**3+z**3==i:

如果x的3次方加上y的3次方再加上z的三次方等于我们设置的变量i的话那么他就是水仙花数!

执行结果如下:

 

转载于:https://www.cnblogs.com/Jimmy1995/p/8814865.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值