python编写fun判断num是否为水仙花数
时间: 2024-02-24 10:55:34 浏览: 68
可以使用以下 Python 代码来实现:
```python
def is_narcissistic(num):
# 将数字转化为字符串,以便逐个访问每个数字
num_str = str(num)
# 计算数字的位数
n = len(num_str)
# 初始化总和
total = 0
# 计算每个数字的n次方的和
for digit in num_str:
total += int(digit) ** n
# 如果总和等于数字本身,则为水仙花数
if total == num:
return True
else:
return False
```
将上述代码保存到一个名为 `narcissistic.py` 的文件中,然后在 Python 解释器中导入该文件并调用 `is_narcissistic(num)` 函数即可判断数字 `num` 是否为水仙花数。例如,要判断数字 153 是否为水仙花数,可以执行以下代码:
```python
from narcissistic import is_narcissistic
num = 153
if is_narcissistic(num):
print(f"{num} 是水仙花数")
else:
print(f"{num} 不是水仙花数")
```
输出结果为:
```
153 是水仙花数
```
相关问题
题目:python编写函数fun:判断一个三位数是否“水仙花数”。 编程实现输出所有的水仙花数。 说明:所谓“水仙花数”是指一个3位数,其各位数字立方和 等于该数本身。 例如:153是一个水仙花数,因为153=1+125+27。 输出样例: 153 370 371 407
可以按照题目要求,编写如下的函数和程序。
```python
# 判断一个三位数是否水仙花数
def isNarcissisticNumber(num):
# 将数字转换为字符串,方便获取每一位数字
num_str = str(num)
# 获取每一位数字
a = int(num_str[0])
b = int(num_str[1])
c = int(num_str[2])
# 判断是否为水仙花数
if num == a ** 3 + b ** 3 + c ** 3:
return True
else:
return False
# 输出所有的水仙花数
for i in range(100, 1000):
if isNarcissisticNumber(i):
print(i, end=' ')
```
运行结果为:
```
153 370 371 407
```
调用函数fun判断一个三位数是否“水仙花数”。在main 函数中从键盘输入一个三位数,并输出判断结果。请编写fun函数Python
可以使用以下的 Python 代码实现:
```python
def fun(num):
# 获取百位、十位、个位数字
a = num // 100
b = (num // 10) % 10
c = num % 10
# 判断是否为水仙花数
if a**3 + b**3 + c**3 == num:
return True
else:
return False
if __name__ == '__main__':
num = int(input("请输入一个三位数:"))
if fun(num):
print(f"{num}是水仙花数")
else:
print(f"{num}不是水仙花数")
```
在这个代码中,我们定义了一个名为 `fun` 的函数来判断一个三位数是否为水仙花数。在 `main` 函数中从键盘输入一个三位数,然后调用 `fun` 函数来判断它是否为水仙花数,最后输出判断结果。
阅读全文