python用字符串求水仙花数
时间: 2023-09-24 22:02:44 浏览: 44
以下是Python用字符串求水仙花数的代码:
```python
narcissistic_nums = []
for num in range(100, 1000):
digits = str(num)
if num == sum([int(d)**3 for d in digits]):
narcissistic_nums.append(num)
print(narcissistic_nums)
```
通过循环遍历100到999的整数,将每个整数转换为字符串,然后使用字符串切片或循环遍历的方式将每个数字单独取出,再使用列表解析式求列表中每个数字的立方和,判断是否等于原数,如果是,则将该数添加到水仙花数列表中。最后打印输出水仙花数列表。
相关问题
字符串显示水仙花数python代码
以下是Python代码,用于显示水仙花数:
```
for num in range(100, 1000):
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num)
```
解释:
- 在数字范围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`即可得到所有的水仙花数。