python使用map函数实现水仙花数
时间: 2023-10-23 15:23:21 浏览: 140
要使用`map`函数实现水仙花数,可以按照以下步骤进行:
1. 首先,定义一个函数,用于判断一个数字是否为水仙花数。水仙花数是指一个n位数,其各个位上的数字的n次方之和等于该数本身。
```python
def is_armstrong_num(num):
n = len(str(num))
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
return sum == num
```
2. 接下来,使用`map`函数将这个函数应用到一个数字序列上,以判断序列中的每个数字是否为水仙花数。
```python
nums = range(100, 1000) # 三位数范围
armstrong_nums = list(map(is_armstrong_num, nums))
```
这样,`armstrong_nums`列表中的每个元素都表示对应数字是否为水仙花数。`True`表示是水仙花数,`False`表示不是。
完整代码如下:
```python
def is_armstrong_num(num):
n = len(str(num))
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
return sum == num
nums = range(100, 1000) # 三位数范围
armstrong_nums = list(map(is_armstrong_num, nums))
print(armstrong_nums)
```
在上述代码中,我们将`nums`定义为一个包含100到999之间所有三位数的范围对象。然后,使用`map`函数将`is_armstrong_num`函数应用到这个范围上,并将结果转换为列表。最后,打印出结果。
阅读全文