某一天,老师在黑板上留了一个题目,说了一个没听过的名字,水仙花数。 老师要求定义一个函数shuixianhuashu( ),判断一个数是不是水仙花数 (一个三位数的各位数字的立方和是这个数本身),求出所有的水仙花数。 韩梅主动举手她来解决这个问题。 提示:函数定义判断一个数是不是水仙花数可以从两个角度入手,第一数字型分别用运算符 取出个十百位,然后用定义判断;第二字符串类型,利用切片加上类型转换去实现; 特别提醒水仙花数是三位数,注意求所有水仙花数的范围设置。 输出格式: 153 是水仙花数 370 是水仙花数 ......
时间: 2024-02-17 17:00:36 浏览: 144
输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。
好的,这是一个很有趣的问题,我会为您解答。下面是代码实现:
```python
def shuixianhuashu(num):
ge = num % 10
shi = num // 10 % 10
bai = num // 100
if ge**3 + shi**3 + bai**3 == num:
return True
else:
return False
for i in range(100,1000):
if shuixianhuashu(i):
print(i,"是水仙花数")
```
运行结果为:
```
153 是水仙花数
370 是水仙花数
371 是水仙花数
407 是水仙花数
```
以上代码中,我们定义了一个shuixianhuashu函数来判断一个数是否为水仙花数。在函数中,我们用除法和取模运算符分别取出给定的三位数的百位、十位和个位数字,然后根据水仙花数的定义来判断该数是否为水仙花数。接着,我们使用一个循环来遍历所有的三位数,并调用shuixianhuashu函数来判断是否为水仙花数。如果是,就输出该数是水仙花数。
阅读全文