编写函数求100~999之间的所有水仙花数。所谓水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。
时间: 2023-08-29 20:12:46 浏览: 83
好的,以下是代码实现:
```python
def narcissistic_number():
for num in range(100, 1000):
# 获取百,十,个位数字
hundreds_digit = num // 100
tens_digit = (num // 10) % 10
units_digit = num % 10
# 计算每个位的数字的3次幂之和
sum_of_cubes = hundreds_digit ** 3 + tens_digit ** 3 + units_digit ** 3
# 判断是否为水仙花数
if sum_of_cubes == num:
print(num)
```
运行以上代码即可输出100~999之间的所有水仙花数。
相关问题
用Python编写函数求100~999之间的所有水仙花数。所谓水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。
当然可以,我们可以创建一个名为`find_water_lilies()`的函数,遍历100到999的所有整数,检查它们是否满足水仙花数的条件。下面是相应的Python代码:
```python
def is_perfect_number(num):
# 对于3位数,百位、十位和个位分别是num // 100, num // 10 % 10, 和 num % 10
digits = [int(digit) for digit in str(num)]
return sum(map(lambda x: x ** 3, digits)) == num
def find_water_lilies():
water_lilies = []
for num in range(100, 1000):
if is_perfect_number(num):
water_lilies.append(num)
return water_lilies
water_lily_numbers = find_water_lilies()
print("100至999之间的水仙花数有:")
for number in water_lily_numbers:
print(number)
用python编写函数求100~999之间的所有水仙花数。所谓水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。
def narcissistic_number():
res = []
for i in range(100, 1000):
num = str(i)
sum = 0
for j in num:
sum += int(j) ** 3
if sum == i:
res.append(i)
return res
print(narcissistic_number())
阅读全文