用python的for循环求水仙花数
时间: 2024-10-09 07:04:51 浏览: 83
在Python中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。你可以编写一个简单的for循环遍历所有三位数,并检查它们是否满足水仙花数的条件。以下是代码示例:
```python
def is_armstrong_number(n):
# 将数字转换为字符串获取长度,即位数
num_str = str(n)
length = len(num_str)
# 计算每位数字的立方和
sum_of_cubes = sum(int(digit) ** length for digit in num_str)
# 如果和等于原数,返回True;否则False
return n == sum_of_cubes
# 使用for循环寻找水仙花数
start = 100 # 开始从100开始查找,因为是三位数
end = 999 # 结束于999,包括这个数
armstrong_numbers = []
for number in range(start, end+1): # 注意范围结束加1是因为range是左闭右开区间
if is_armstrong_number(number):
armstrong_numbers.append(number)
print("水仙花数有:", armstrong_numbers)
相关问题
for循环求水仙花数
for循环求水仙花数是一种常见的编程练习,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
下面是一个简单的Python示例,展示了如何使用for循环寻找所有的水仙花数:
```python
def find_pythagorean_triple():
limit = 999 # 我们只考虑三位数
for num in range(100, limit+1): # 遍历从100到999的所有数
digits = [int(d) for d in str(num)] # 将数字转换为列表,获取每一位数字
if sum(map(lambda x: x**3, digits)) == num: # 检查是否满足水仙花条件
print(f"{num} is a Narcissistic number")
# 执行函数
find_pythagorean_triple()
```
运行这个程序会打印出所有小于1000的水仙花数。
python单层循环结构水仙花数
以下是Python单层循环结构求解水仙花数的例子:
```python
# 求解水仙花数
for num in range(100, 1000):
# 将数字拆分为个位、十位、百位
digit1 = num // 100
digit2 = (num // 10) % 10
digit3 = num % 10
# 判断是否为水仙花数
if num == digit1 ** 3 + digit2 ** 3 + digit3 ** 3:
print(num)
```
该程序通过for循环遍历100到999之间的所有整数,将每个整数拆分为个位、十位、百位,然后判断该整数是否为水仙花数。如果是,则输出该整数。
阅读全文