编写UDF函数,判断输入的数字是否是水仙花数
时间: 2024-02-22 12:00:12 浏览: 99
输入一个三位数,判断它是否是水仙花数
4星 · 用户满意度95%
好的,下面是一个判断输入数字是否是水仙花数的UDF函数:
```python
def is_narcissistic_number(num):
"""
判断输入的数字是否是水仙花数
:param num: 输入数字
:return: True or False
"""
# 将数字转换为字符串,方便按位操作
num_str = str(num)
# 获取数字的位数
n = len(num_str)
# 将每个数字的n次方相加
sum = 0
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(9474)) # True
print(is_narcissistic_number(1634)) # True
print(is_narcissistic_number(8208)) # True
print(is_narcissistic_number(123)) # False
```
注意事项:
- 水仙花数是指一个 n 位数(n≥3),它的每个位上的数字的 n 次幂之和等于它本身。例如:153、370、371、407 等都是水仙花数。
- 如果输入的数字不是正整数,则该函数会返回 False。
- 如果输入的数字是正整数,但不是水仙花数,则该函数会返回 False。
阅读全文