输出所有水仙花数。“水仙花”数是一个三位数,其中它的值等于组成它的各位数字的立方和,例如:153=13+53+33。要求:用两种方法完成
时间: 2024-06-10 09:07:04 浏览: 45
好的,下面我来回答你关于水仙花数的问题,首先我会提供两种方法。
方法一:
代码如下:
```python
for num in range(100, 1000):
# 分解出每个位上的数字
digit1 = num // 100
digit2 = num // 10 % 10
digit3 = num % 10
# 判断是否满足“水仙花”条件
if num == digit1 ** 3 + digit2 ** 3 + digit3 ** 3:
print(num)
```
运行结果为:
```
153
370
371
407
```
方法二:
代码如下:
```python
for i in range(1, 10):
for j in range(0, 10):
for k in range(0, 10):
num = i * 100 + j * 10 + k
# 判断是否满足“水仙花”条件
if num == i ** 3 + j ** 3 + k ** 3:
print(num)
```
运行结果与方法一相同:
```
153
370
371
407
```
以上是两种 Python 实现水仙花数的方法,希望可以帮助到你。如果有其他问题,请继续提问。
相关问题
2.输出所有水仙花数。“水仙花”数是一个三位数,其中它的值等于组成它的各位数字 的立方和,例如:153=13+53+33。要求用两种方法完成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
# 方法二
for i in range(1, 10):
for j in range(0, 10):
for k in range(0, 10):
num = i * 100 + j * 10 + k
if num == i ** 3 + j ** 3 + k ** 3:
print(num)
```
这两种方法都可以输出所有的水仙花数。第一种方法是通过循环遍历所有的三位数,然后分离出个位、十位、百位,判断是否为水仙花数。第二种方法是通过三重循环遍历所有的三位数,然后判断是否为水仙花数。
输出所有水仙花数。“水仙花”数是一个三位数,其中它的值等于组成它的各位数字的立方和,例如:153=1²+5²+3²。要求:用两种方法完成
Sure, 我可以为您提供所有水仙花数的输出。以下是两种方法:
方法一:使用for循环
```python
for i in range(100, 1000):
a = int(i / 100)
b = int((i % 100) / 10)
c = int(i % 10)
if i == a**3 + b**3 + c**3:
print(i, end=" ")
```
方法二:使用列表推导式
```python
print([i for i in range(100, 1000) if i == int(str(i)[0])**3 + int(str(i)[1])**3 + int(str(i)[2])**3])
```
以上两种方法的输出结果都是:
```
153 370 371 407
```
请问还有什么需要我回答的问题吗?