颜值李 发表于 2018-10-24 19:22:21

求水仙花数,这么做有啥问题么

i=100
j=i%100//10
k=i%100%10
while(i<=999):
    if((i//100)*(i//100)*(i//100)+j*j*j+k*k*k==i):
      print(i)
      i=i+1
    else:
      i=i+1

塔利班 发表于 2018-10-24 19:27:03

你i=100,j,k都是固定的数,0,0
而且i变化后,j.k也不是i的十位个位数了
这样每次你只有i变化,几百能满足水仙花数么,,,

颜值李 发表于 2018-10-24 19:38:30

塔利班 发表于 2018-10-24 19:27
你i=100,j,k都是固定的数,0,0
而且i变化后,j.k也不是i的十位个位数了
这样每次你只有i变化,几百能满足 ...


i=100
j=i%100//10
k=i%100%10
while(i<=999):
    if((i//100)*(i//100)*(i//100)+j*j*j+k*k*k==i):
      j=i%100//10
      k=i%100%10
      print(i)
      i=i+1
    else:
      i=i+1
谢谢 那如果是这样呢 为啥还是不行类

塔利班 发表于 2018-10-24 19:44:41

i=100
j=i%100//10
k=i%100%10
while(i<=999):
    if((i//100)*(i//100)*(i//100)+j*j*j+k*k*k==i):
      print(i)
    i=i+1
    j=i%100//10
    k=i%100%10
因为你jk是i的个十位,但是i加了1后就不是了

画鱼面 发表于 2018-10-26 23:03:19

塔利班 发表于 2018-10-24 19:44
因为你jk是i的个十位,但是i加了1后就不是了

for i in range(100,1000):
    while(i<=999):
      j=i%100//10
      k=i%100%10
      if((i//100)*(i//100)*(i//100)+j*j*j+k*k*k==i):
             print(i)
      else:
             i=i+1



改了一下这个    就一直是153153    请问怎么跳出这个循环

塔利班 发表于 2018-10-26 23:11:08

你是else才+1,不是else就不变了
还有没必要2重循环
i=100
while(i<=999):
    j=i%100//10
    k=i%100%10
    if((i//100)*(i//100)*(i//100)+j*j*j+k*k*k==i):
         print(i)
    i=i+1

tianqi2007 发表于 2021-7-25 16:50:07

i=100
while(i<=999):
    j = i % 100 // 10
    k = i % 100 % 10
    if((i//100)*(i//100)*(i//100)+j*j*j+k*k*k==i):
      print(i)
    i+=1
页: [1]
查看完整版本: 求水仙花数,这么做有啥问题么