用python写一段打印所有水仙花数的程序
时间: 2023-08-31 21:31:41 浏览: 201
### 回答1:
这是一段打印所有水仙花数的 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)
```
该代码使用了 for 循环,并在循环内部使用了 while 循环。它首先将变量 `num` 初始化为从 100 到 1000 中的每一个数字,然后使用 while 循环逐个分离出这个数字的各个位数,并将这些位数的立方值加起来。最后,如果 `sum` 的值等于原始的 `num`,则该数字为水仙花数,代码会打印它。
### 回答2:
水仙花数是指一个三位数,它的每个位上的数字的立方和等于自身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是用Python编写的打印所有水仙花数的程序:
```python
for num in range(100, 1000):
# 获取百位、十位和个位的数字
digit_1 = num // 100
digit_2 = (num // 10) % 10
digit_3 = num % 10
# 计算立方和
sum_of_cubes = digit_1 ** 3 + digit_2 ** 3 + digit_3 ** 3
# 判断是否为水仙花数
if num == sum_of_cubes:
print(num)
```
程序中使用了一个for循环,遍历所有三位数(100到999)。对于每一个数字,我们通过除法和取余运算符来获取它的百位、十位和个位的数字。然后,我们计算这三个数字的立方和,如果等于原来的数字,就打印出来。
运行这段代码会输出以下水仙花数:
153
370
371
407
注意:根据题目要求,这段程序只会打印出三位数的水仙花数,如果需要打印更高位数的水仙花数,可以修改代码中的范围。
### 回答3:
水仙花数是指一个n位数(n≥3),其各个位上的数字的n次幂之和等于它本身。下面是用Python编写的打印所有水仙花数的程序:
```python
def find_narcissistic_numbers():
for num in range(100, 1000):
# 获取百位、十位、个位数字
digit_1 = num // 100
digit_2 = (num // 10) % 10
digit_3 = num % 10
# 判断是否为水仙花数
if num == digit_1**3 + digit_2**3 + digit_3**3:
print(num)
find_narcissistic_numbers()
```
以上程序定义了一个`find_narcissistic_numbers`函数,在函数中使用`range`函数生成从100到999的所有三位数。然后通过整数除法和取余运算符获取每个数字的百位、十位和个位数字。接下来,使用if语句判断条件是否成立,即判断该数是否为水仙花数。如果是,就打印出来。最后,调用`find_narcissistic_numbers`函数,即可打印出所有的水仙花数。
阅读全文