水仙花数(Narcissistic number)是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如153是一个3位数的水仙花数,因为1^3 + 5^3 + 3^3 = 153。 以下是Python实现代码: ```python def find_narcissistic_numbers(start, end): """查找指定范围内的水仙花数""" narcissistic_numbers = [] for num in range(start, end + 1): # 计算数字的位数 n = len(str(num)) # 计算各位数字的n次方和 sum_of_powers = 0 temp = num while temp > 0: digit = temp % 10 sum_of_powers += digit n temp = temp // 10 # 判断是否为水仙花数 if sum_of_powers == num: narcissistic_numbers.append(num) return narcissistic_numbers # 示例:查找100-999之间的水仙花数(3位数) print(find_narcissistic_numbers(100, 999)) ``` 代码说明: 1. 函数`find_narcissistic_numbers`接受起始和结束数字作为参数 2. 对于范围内的每个数字,先计算其位数n 3. 然后计算该数字每位数字的n次方和 4. 如果和等于原数字,则添加到结果列表中 注意事项: 1. 水仙花数至少是3位数,1位数不被认为是水仙花数 2. 对于大范围的搜索,可以考虑优化算法减少计算量 3. 该实现适用于任意位数的水仙花数查找,不限于3位数 [2025-05-09 19:11:46 | AI写代码神器 | 368点数解答]