求 100-1000 中所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字立方各等于该数本身,要求用 for 循环实现。
1个回答
关注
展开全部
# 仙花数
仙花数:一个三位数,其按位之和等于该数本身,该数称为仙花数。求出100- 1000之间的仙花数
(其实,仙花数是“幂数”中的一种;幂数:一个n位数,其按位数字的n次幂之和,等于该数本身。
# 第1种方法
list1 = []
for i in range(100,1000):
a = i%10 # 个位
b = i%100//10 # 十位
c = i//100 # 百位
d = a ** 3 + b ** 3 + c ** 3
if d == i:
list1.append(d)
print('1000以内的仙花数有:', list1)
# 输出的结果为 1000以内的仙花数有: [153, 370, 371, 407]
# 第2种方法
i = 2
while i < 1000:
a = i % 10
b = i % 100 // 10
c = i // 100
if a ** 3 + b ** 3 + c ** 3 == i:
print(i)
i += 1
咨询记录 · 回答于2024-01-08
求 100-1000 中所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字立方各等于该数本身,要求用 for 循环实现。
亲您好,我是问答博主,你的问题我已经看到了,正在整理答案,人工打字中,五分钟之内回复您,您的追问我一定会回答,因为人数较多需要排队,请您稍等一会儿
嗯嗯
### 仙花数
仙花数是指一个三位数,其各位数字的立方和等于该数本身。求出100-1000之间的仙花数。
(实际上,仙花数是“幂数”中的一种;幂数是指一个n位数,其各位数字的n次幂之和,等于该数本身。)
# 第1种方法
list1 = []
for i in range(100, 1000):
a = i % 10 # 个位
b = i % 100 // 10 # 十位
c = i // 100 # 百位
d = a ** 3 + b ** 3 + c ** 3
if d == i:
list1.append(d)
print('1000以内的仙花数有:', list1)
# 输出的结果为 1000以内的仙花数有: [153, 370, 371, 407]
# 第2种方法
i = 2
while i < 1000:
a = i % 10
b = i % 100 // 10
c = i // 100
if a ** 3 + b ** 3 + c ** 3 == i:
print(i)
i += 1