(4)设计一个函数,输入参数n,判断该数是否为水仙花数
时间: 2024-04-30 19:22:58 浏览: 10
水仙花数是指一个n位正整数(n≥3),它的每个数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。
实现思路:
1. 将n转换为字符串,获取其长度,判断是否大于等于3。
2. 遍历n的每一位数字,计算该数字的n次幂和。
3. 判断计算出的和是否等于n,如果相等,则n为水仙花数,返回True,否则返回False。
代码实现:
```
def is_narcissistic_number(n):
str_n = str(n)
length = len(str_n)
if length < 3:
return False
sum = 0
for i in str_n:
sum += int(i) ** length
if sum == n:
return True
else:
return False
```
测试:
```
print(is_narcissistic_number(153)) # True
print(is_narcissistic_number(370)) # True
print(is_narcissistic_number(9474)) # True
print(is_narcissistic_number(9475)) # False
print(is_narcissistic_number(1634)) # True
print(is_narcissistic_number(8208)) # True
print(is_narcissistic_number(94744)) # False
```