设计一个函数,输入参数n,判断该数是否为水仙花数。
时间: 2024-06-11 20:07:38 浏览: 93
水仙花数是指一个n位正整数,其各位数字的n次方和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个判断函数的实现:
```python
def is_narcissistic_number(n):
# 将数字转为字符串,方便按位操作
s = str(n)
# 获取数字的位数
num_digits = len(s)
# 初始化各位数字n次方和为0
sum = 0
# 按位计算各位数字的n次方和
for digit in s:
sum += int(digit) ** num_digits
# 判断是否与原数相等
if sum == n:
return True
else:
return False
```
在函数中,首先将输入的n转为字符串s,以便按位操作。然后获取数字的位数num_digits,初始化各位数字n次方和为0。接着,按位计算各位数字的n次方和,并将结果保存在sum变量中。最后,判断sum是否与原数n相等,若相等则返回True,否则返回False。
使用该函数,可以方便地判断任意一个正整数是否为水仙花数,例如:
```python
print(is_narcissistic_number(153)) # True
print(is_narcissistic_number(370)) # True
print(is_narcissistic_number(371)) # True
print(is_narcissistic_number(407)) # True
print(is_narcissistic_number(1634)) # True
print(is_narcissistic_number(8208)) # True
print(is_narcissistic_number(9474)) # True
print(is_narcissistic_number(9475)) # False
```
阅读全文