Python编写程序实现打印第一个三位数的水仙花数(水仙花数是指一个)
时间: 2023-10-20 11:10:37 浏览: 47
以下是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)
break
```
这个程序使用了一个 for 循环来遍历所有的三位数,然后用整除和取模操作符分离出百位、十位和个位。接着,它判断这个数是否为水仙花数,如果是,就打印出来并且使用 break 语句退出循环。
相关问题
Python编写程序实现打印第一个三位数的水仙花数。水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身(例如:1^3+5^3+3^3=153)
可以使用以下代码实现:
```python
for num in range(100, 1000):
# 求出每个位上的数字
digit1 = num // 100
digit2 = (num // 10) % 10
digit3 = num % 10
# 判断是否为水仙花数
if digit1 ** 3 + digit2 ** 3 + digit3 ** 3 == num:
print(num)
break
```
输出结果为:
```
153
```
Python编写程序,输出所有3位水仙花数用两种方法,还有思路和流程图
思路:
- 所谓“水仙花数”,指的是一个三位数,其各个位上数字的立方和等于该数本身。
- 因此,我们可以从100开始遍历到999,对于每个数,计算其各个位上数字的立方和,如果等于该数本身,则输出该数。
流程图:
```
开始
遍历100到999的每个数
计算该数的各个位上数字的立方和
如果等于该数本身
输出该数
结束
```
代码:
方法一:使用for循环和条件判断
```python
for num in range(100, 1000):
# 取出每个位上的数字
a = num // 100
b = (num // 10) % 10
c = num % 10
# 计算各个位上数字的立方和
sum = a ** 3 + b ** 3 + c ** 3
# 判断是否为水仙花数
if sum == num:
print(num)
```
方法二:使用列表推导式和条件判断
```python
result = [num for num in range(100, 1000) if (num // 100) ** 3 + ((num // 10) % 10) ** 3 + (num % 10) ** 3 == num]
print(result)
```
注意:以上两种方法都可以输出所有的3位水仙花数,第二种方法使用了列表推导式,可以更简洁地实现。