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

  水仙花数业内的你们可能据说过,可是对于初学者来说,对于水仙花数仍是比较陌生的。blog

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

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

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=1im

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

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

那么如今这个结构就是 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*1co

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

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

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

执行结果以下:

相关文章
相关标签/搜索