'''
找出所有水仙花数
'''
user_input_num = list(input('输入整数,我来找出其以内的所有水仙花数:'))
a, b, c = user_input_num
daffodil = []
for i in range(int(a)):
for j in range(int(b)):
for k in range(int(c)):
if i*i*i + j*j*j + k*k*k == i*100+j*10+k:
daffodil.append(i*100+j*10+k)
print(f'{int(a)*100+int(b)*10+int(c)}以内的水仙花数是:')
for i in range(len(daffodil)):
print(daffodil[i], end=',')
这个虽然说也能得出结果,但觉得太复杂了,有没有更简便的方法呢?
for n in range(100, 1000):
hun = int(n / 100)
ten = int((n-hun*100) / 10)
ind = n % 10
if(n == hun*hun*hun + ten*ten*ten + ind*ind*ind):
print(n)
仅供参考,如有帮助,请采纳,谢谢
num = eval(input('输入整数,我来找出其以内的所有水仙花数:'))
print(num,"以内的水仙花数有", end =":")
for n in range(100, num):
if (n//100)**3+(n%100//10)**3+(n%10)**3==n:
print(n, end=",")
'''
找出所有水仙花数
'''
in = int(input('输入整数,我来找出其以内的所有水仙花数:')) #这里改了,list改成int
a = 0#单独定义变量
daffodil = []
while a < in:#while简化
b = str(a)#转化一下
if b[0]**3 + b[1]**3 + b[2]**3 == b[0]*100+b[1]*10+b[2]:#str的索引
daffodil.append(a)#简化,因为a是int,直接放进去就行
a = a + 1#迭代
print(f'{daffodil}以内的水仙花数是:')#简化
print(daffodil)#简化输出,就是效果跟原来的不一样。想要一样就一个for i in daffodil