python中用函数求解水仙花数
时间: 2023-06-06 11:08:40 浏览: 149
水仙花数是指一个n位数(n≥3),它的各位数字的n次方之和等于它本身。例如:153=1^3+5^3+3^3。
以下是Python代码实现:
def narcissistic_number(n):
result = []
for i in range(10**(n-1), 10**n):
sum = 0
for j in str(i):
sum += int(j)**n
if sum == i:
result.append(i)
return result
print(narcissistic_number(3)) # 输出 153, 370, 371, 407
相关问题
Python中用函数输出所有水仙花数
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。例如:1^3 + 5^3 + 3^3 = 153,因此 153 就是一个水仙花数。
下面是一个 Python 函数实现输出所有水仙花数的方法:
```python
def narcissistic_number():
for num in range(100, 1000):
# 求数字的位数
n = len(str(num))
# 计算每个位上的数字的n次方之和
total = 0
for digit in str(num):
total += int(digit) ** n
# 如果等于本身,则为水仙花数
if total == num:
print(num)
```
在这个函数中,我们使用 for 循环遍历 100 到 999 之间的整数。然后,我们计算每个数的位数,以及每个位上数字的 n 次方之和。如果这个和等于这个数本身,那么这个数就是一个水仙花数,我们就将它输出。
python封装函数实现水仙花数
以下是 Python 封装函数实现水仙花数的代码:
```python
def narcissistic_number(num):
"""
判断一个数是否为水仙花数
"""
# 将数字转换为字符串,方便计算位数
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
# 判断 153 是否为水仙花数
print(narcissistic_number(153)) # True
# 判断 123 是否为水仙花数
print(narcissistic_number(123)) # False
```
希望能对您有所帮助!