用python使用三种方法计算水仙花数
时间: 2024-01-29 09:02:33 浏览: 135
当然,我会很乐意回答你的问题。以下是用Python计算水仙花数的三种方法:
方法一:使用循环
```python
for num in range(100, 1000):
sum = 0
temp = num
while temp:
sum += (temp % 10) ** 3
temp //= 10
if sum == num:
print(num)
```
方法二:使用列表推导式
```python
result = [num for num in range(100, 1000) if sum([int(i) ** 3 for i in str(num)]) == num]
print(result)
```
方法三:使用filter函数
```python
result = filter(lambda num: sum([int(i) ** 3 for i in str(num)]) == num, range(100, 1000))
print(list(result))
```
以上三种方法都可以计算出三位数的水仙花数。
相关问题
用Python输出三位数的水仙花数
好的,以下是 Python 代码,用于输出所有的三位数水仙花数:
```python
for i in range(100, 1000):
num = str(i)
if int(num[0])**3 + int(num[1])**3 + int(num[2])**3 == i:
print(i)
```
该代码使用了 for 循环遍历所有的三位数,然后通过字符串转换和数值计算判断是否是水仙花数,并将结果输出。
python计算所有三位数水仙花数的和
三位数的水仙花数是指其各个位上数字的立方和等于该数本身。因此,我们可以通过以下代码计算所有三位数水仙花数的和:
```python
sum = 0 # 初始化和为0
for i in range(100, 1000): # 循环遍历所有三位数
num = i # 将当前数赋值给变量num
digit_sum = 0 # 初始化当前数的各位数字的立方和为0
while num > 0: # 循环计算当前数的各位数字的立方和
digit = num % 10 # 取出当前数的个位数字
digit_sum += digit ** 3 # 将当前数的个位数字的立方加到各位数字的立方和中
num //= 10 # 将当前数除以10,以便计算下一位数字的立方
if digit_sum == i: # 如果当前数是水仙花数
sum += i # 将当前数加到和中
print("所有三位数水仙花数的和为:", sum) # 输出结果
```
运行结果为:
```
所有三位数水仙花数的和为: 1301
```
阅读全文