python 编程实现水仙花数检测356


水仙花数,又称自恋数,是指一个三位数,其各位数字立方和等于该数本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。python 编程中,我们可以使用如下代码来检测一个三位自然数是否为水仙花数:``` python
def is_narcissus(n):
"""判断一个三位自然数是否为水仙花数"""
# 将数字转换为字符串
n_str = str(n)
# 立方和
cube_sum = 0
for digit in n_str:
cube_sum += int(digit) 3
# 判断是否等于原数字
return cube_sum == n
```

下面是一些示例:``` python
>>> is_narcissus(153)
True
>>> is_narcissus(371)
True
>>> is_narcissus(123)
False
```

我们可以使用以下代码生成 100 以内的所有水仙花数:``` python
# 生成 100 以内所有水仙花数
narcissus_numbers = []
for i in range(100, 1000):
if is_narcissus(i):
(i)
print(narcissus_numbers)
```

输出结果为:[153, 370, 371, 407]

扩展:

我们可以将代码扩展到任意位数的自然数:``` python
def is_narcissus(n, base):
"""判断一个自然数是否为 base 进制的水仙花数"""
# 将数字转换为字符串
n_str = str(n)
# 立方和
cube_sum = 0
for digit in n_str:
cube_sum += int(digit) base
# 判断是否等于原数字
return cube_sum == n
```

其中,base 参数指定进制。例如,要判断一个三位数是否为 10 进制的水仙花数,可以使用 is_narcissus(n, 10)。要判断一个四位数是否为 16 进制的水仙花数,可以使用 is_narcissus(n, 16)。

2024-12-22


上一篇:Python Office 编程:释放自动化办公潜力

下一篇:Python 编程骗局:小心网络诈骗陷阱