判断是否是水仙花数的函数
时间: 2023-11-20 21:21:21 浏览: 26
这是一个数学问题,我可以回答。水仙花数指一个三位数各个位上数字的立方和等于该数本身,例如153就是一个水仙花数。以下是用 Python 语言编写的判断函数:
def narcissistic_number(num):
s = str(num)
n = len(s)
sum = 0
for i in range(n):
digit = int(s[i])
sum += digit ** n
if sum == num:
return True
else:
return False
你可以输入一个三位数来测试该函数。
相关问题
判断是否是水仙花数自定义函数
以下是Python代码实现:
```python
def is_narcissistic_number(number):
# 将数字转换为字符串,以便逐位访问
num_str = str(number)
# 获取数字的位数
num_length = len(num_str)
# 初始化总和为0
total_sum = 0
# 计算每个数字的次方和
for digit in num_str:
total_sum += int(digit) ** num_length
# 比较总和与原数字是否相等
if total_sum == number:
return True
else:
return False
```
该函数接受一个整数作为参数,返回一个布尔值。如果该整数是水仙花数,则返回True,否则返回False。
设计函数判断是否为水仙花数
水仙花数是指一个 n 位数(n≥3),其各位数字的 n 次方之和等于该数本身。例如,153 就是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。我们可以设计一个函数来判断一个数是否为水仙花数,实现如下:
```python
def is_narcissistic_number(num):
"""
判断一个数是否为水仙花数
:param num: 待判断的数
:return: True/False
"""
# 转换为字符串,以便获取每一位数字
num_str = str(num)
# 获取数字位数
n = len(num_str)
# 初始化数字 n 次方之和为 0
sum = 0
# 遍历每一位数字,计算 n 次方之和
for i in num_str:
sum += int(i)**n
# 判断是否为水仙花数
if sum == num:
return True
else:
return False
```
使用示例:
```python
print(is_narcissistic_number(153)) # True
print(is_narcissistic_number(371)) # True
print(is_narcissistic_number(9474)) # True
print(is_narcissistic_number(9475)) # False
```