python用列表求水仙花数
时间: 2023-07-01 11:18:57 浏览: 94
以下是Python用列表求水仙花数的代码:
```python
narcissistic_nums = []
for num in range(100, 1000):
digits = [int(d) for d in str(num)] # 将整数拆分为一位位数字的列表
if num == sum([d**3 for d in digits]): # 求列表中每个数字的立方和,并判断是否等于原数
narcissistic_nums.append(num)
print(narcissistic_nums)
```
通过循环遍历100到999的整数,将每个整数拆分为一位位数字的列表,然后使用列表解析式求列表中每个数字的立方和,判断是否等于原数,如果是,则将该数添加到水仙花数列表中。最后打印输出水仙花数列表。
相关问题
python用列表切片求水仙花数
可以使用以下代码来求出100-999之间的水仙花数:
```
lst = []
for i in range(100, 1000):
s = str(i)
if int(s[0])**3 + int(s[1])**3 + int(s[2])**3 == i:
lst.append(i)
print(lst)
```
其中,我们先定义一个空列表`lst`,然后通过`for`循环遍历100到999之间的所有数字。对于每个数字,我们将它转换成字符串类型`str(i)`,然后利用切片取出百位、十位和个位上的数字,并分别计算它们的立方和是否等于该数字本身。如果相等,则将该数字添加到列表`lst`中。最后输出`lst`即可得到所有的水仙花数。
python用函数求水仙花数的个数
可以使用如下的 Python 代码来求解水仙花数的个数:
```python
def is_narcissistic_number(num):
# 计算该数的位数
n = len(str(num))
# 求出每一位上的数字,并计算它们的幂之和
sum = 0
for i in str(num):
sum += int(i) ** n
# 如果幂之和等于该数本身,则说明该数是水仙花数
return sum == num
def count_narcissistic_numbers(start, end):
count = 0
for i in range(start, end + 1):
if is_narcissistic_number(i):
count += 1
return count
print(count_narcissistic_numbers(100, 999))
```
这段代码中,我们首先定义了一个函数 `is_narcissistic_number` 来判断一个数是否是水仙花数。然后,我们定义了另一个函数 `count_narcissistic_numbers` 来统计在一个区间内水仙花数的个数。最后,我们调用 `count_narcissistic_numbers` 函数并传入区间的起始和结束数值,就可以得到该区间内水仙花数的个数。
阅读全文