python 水仙花for循环
时间: 2024-09-24 21:11:12 浏览: 31
水仙花数,也叫 narcissistic number 或者 pluperfect digital invariant,是指一个三位数,其各位数字的立方和等于它本身。例如,153 就是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
在 Python 中,你可以使用 for 循环结合条件判断来寻找水仙花数。下面是一个简单的例子:
```python
def is_narcissistic(num):
# 将数字转换成字符串,然后分割得到每位数字
digits = [int(digit) for digit in str(num)]
# 计算各位数字的立方和
sum_of_cubes = sum([digit**3 for digit in digits])
# 如果立方和等于原数,那么就是水仙花数
return sum_of_cubes == num
# 使用for循环遍历从100到999范围内的所有三位数
for i in range(100, 1000):
if is_narcissistic(i):
print(f"{i} 是一个水仙花数")
相关问题
python水仙花三重循环
以下是Python实现的水仙花数三重循环代码:
```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)
```
这段代码会输出所有三位数的水仙花数。
水仙花数pythonfor循环
### 使用Python For循环实现水仙花数算法
为了找出所有的三位数中的水仙花数,可以采用如下所示的Python代码。这段代码利用`for-in`循环遍历所有可能的三位数值,并通过简单的数学运算验证这些值是否为水仙花数。
```python
def find_narcissistic_numbers():
result = []
for num in range(100, 1000): # 只考虑三位数
temp_num = num
sum_cubes = 0
while temp_num > 0:
digit = temp_num % 10
sum_cubes += digit ** 3
temp_num //= 10
if sum_cubes == num:
result.append(num)
return result
if __name__ == "__main__":
print(find_narcissistic_numbers())
```
上述代码定义了一个名为`find_narcissistic_numbers()`函数,用于寻找并返回列表形式的结果集,其中包含了符合条件的所有三位数水仙花数[^2]。此方法首先初始化一个空列表`result`用来存储找到的每一个水仙花数;接着设置了一个`for`循环迭代器,在每次迭代过程中处理当前数字(`num`)及其各个位置上的单独数字(`digit`)。对于每一位数字都计算其立方值并将它们相加得到总和(`sum_cubes`)。如果最终获得的总和正好等于原始输入数字,则说明这是一个有效的水仙花数,并将其加入到结果集中[^3]。
阅读全文