三位数水仙花数python
时间: 2025-01-14 11:00:58 浏览: 42
### 使用Python编写程序来找到所有的三位数水仙花数
#### 方法一:利用单循环将一个三位数逐位分离后进行判断
这种方法通过遍历100到999之间的每一个数字,将其分解为百位、十位和个位三个部分,并分别求这三个位置上的数值的三次方之和。如果这个总和正好等于原来的那个三位数,则说明这是一个水仙花数。
```python
print('所有的水仙花数如下:')
for i in range(100, 1000):
x = i // 100 # 获取百位
y = i // 10 % 10 # 获取十位
z = i % 10 # 获取个位
if x ** 3 + y ** 3 + z ** 3 == i:
print(f'{i}是水仙花数') # 输出符合条件的结果
```
此段代码实现了上述逻辑并能够正确找出所有满足条件的三位数水仙花数[^2]。
#### 方法二:使用列表推导式简化代码结构
除了传统的`for`循环外,还可以采用更简洁的方式——列表推导式,在一行内完成同样的功能:
```python
narcissistic_numbers = [i for i in range(100, 1000) if sum(int(digit)**3 for digit in str(i)) == i]
print("三位水仙花数:", *narcissistic_numbers)
```
这段代码同样可以得到相同的效果,而且更加紧凑易读[^3]。
相关问题
判断三位数水仙花数Python
下面是判断三位数水仙花数的Python代码:
```
for num in range(100,1000):
digit1 = num // 100
digit2 = (num % 100) // 10
digit3 = num % 10
if num == digit1 ** 3 + digit2 ** 3 + digit3 ** 3:
print(num)
```
这段代码遍历了所有的三位数,对于每个数字,把它的百位、十位和个位分别取出来,并计算它们的立方和,如果结果与这个数本身相等,则说明这个数字是水仙花数,输出它。
python三位数水仙花数
以下是Python求解三位数水仙花数的代码和解释:
```python
# 方法一:使用for循环和if条件语句
for i in range(100, 1000):
# 获取百位、十位、个位数字
a = i // 100
b = (i // 10) % 10
c = i % 10
# 判断是否为水仙花数
if a**3 + b**3 + c**3 == i:
print(i, end=' ')
```
```python
# 方法二:使用列表推导式
lst = [i for i in range(100, 1000) if (i//100)**3 + ((i//10)%10)**3 + (i%10)**3 == i]
print(lst)
```
方法一中,我们使用for循环遍历100到999之间的所有整数,然后使用整除和取余运算符获取百位、十位和个位数字。接着,我们使用if条件语句判断该数是否为水仙花数,如果是,则将其输出。
方法二中,我们使用列表推导式一次性生成所有的水仙花数,并将其存储在一个列表中,然后输出该列表。
阅读全文
相关推荐

















