2. 用python编写程序打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身
时间: 2023-10-27 20:04:50 浏览: 111
下面是用 Python 编写的程序,可以打印出所有的水仙花数:
```python
for i in range(100, 1000):
temp = i
sum = 0
while temp:
sum += (temp % 10) ** 3
temp //= 10
if sum == i:
print(i)
```
输出结果为:
```
153
370
371
407
```
这四个数就是所有的水仙花数。
相关问题
Python 编写程序,输出所有水仙花数,且输出在一行的算法实现的步骤和思路是什么
步骤:
1. 定义一个函数 `is_narcissistic_number()`,用于判断一个数是否为水仙花数。
2. 定义一个变量 `result` 用于存储所有的水仙花数。
3. 使用一个循环,枚举所有三位数(100~999),并在循环中调用 `is_narcissistic_number()` 判断是否为水仙花数。
4. 如果是水仙花数,就将其添加到 `result` 中。
5. 最后输出 `result`。
思路:
1. 水仙花数是指一个三位数,其各位数字的立方和等于该数本身。因此,我们可以通过计算这个数的各个数字的立方和,然后与该数本身进行比较来判断这个数是否为水仙花数。
2. 在 `is_narcissistic_number()` 函数中,我们可以通过将这个数转换成字符串,再依次取出每个字符并转换成数字的方式来获取这个数的各位数字。
3. 然后,我们可以使用一个循环,计算出这个数的各位数字的立方和,并将其与该数本身进行比较,如果相等,则这个数就是水仙花数。
下面是 Python 代码实现:
```python
def is_narcissistic_number(num):
"""判断一个数是否为水仙花数"""
# 将这个数转换成字符串
num_str = str(num)
# 计算这个数的各位数字的立方和
sum = 0
for digit in num_str:
sum += int(digit) ** 3
# 判断是否为水仙花数
return sum == num
result = []
# 枚举所有三位数
for num in range(100, 1000):
if is_narcissistic_number(num):
result.append(num)
# 输出所有水仙花数
print(result)
```
输出结果:
```
[153, 370, 371, 407]
```
注意:本题的输出结果中,所有水仙花数在一行中输出的实现方式是默认的,因为 Python 的 `print()` 函数默认会在输出结果之间添加一个空格。如果需要在一行中输出所有结果,可以使用 `print()` 函数的 `sep` 参数,并将其设置为空字符串,如下所示:
```python
print(*result, sep="")
```
这样,就可以将所有水仙花数在一行中输出。
Python编写程序找出所有的水仙花数并输出。水仙花数 是三位数,它的各位数字的立方和等于这个三位 数本身
好的,以下是Python代码实现:
```python
for num in range(100, 1000):
# 获取百位、十位、个位上的数字
a = num // 100
b = num % 100 // 10
c = num % 10
# 判断是否为水仙花数
if num == a**3 + b**3 + c**3:
print(num)
```
输出结果为:
```
153
370
371
407
```
阅读全文
相关推荐
















