当前位置:首页python > 正文

python计算水仙花数的平均值

作者:野牛程序员:2023-07-10 08:07:39python阅读 2731

水仙花数(Narcissistic number)是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

要计算水仙花数的平均值,首先需要确定一个范围,然后找到在该范围内的所有水仙花数,并计算它们的平均值。

以下是一个使用Python编写的计算水仙花数平均值的示例代码:

def is_narcissistic_number(num):
    # 计算num的位数
    num_digits = len(str(num))
    # 计算每个位上数字的n次幂之和
    digit_sum = sum(int(digit)**num_digits for digit in str(num))
    # 检查是否满足水仙花数条件
    return digit_sum == num

def average_narcissistic_numbers(start, end):
    narcissistic_numbers = []
    count = 0
    # 在给定范围内查找水仙花数
    for num in range(start, end + 1):
        if is_narcissistic_number(num):
            narcissistic_numbers.append(num)
            count += 1

    if count > 0:
        # 计算水仙花数的平均值
        average = sum(narcissistic_numbers) / count
        return average
    else:
        return 0

# 示例用法
start_range = 100
end_range = 1000
result = average_narcissistic_numbers(start_range, end_range)
print(f"The average of narcissistic numbers between {start_range} and {end_range} is: {result}")

请注意,代码中的is_narcissistic_number函数用于检查一个数是否是水仙花数,average_narcissistic_numbers函数用于计算给定范围内水仙花数的平均值。你可以根据自己的需求调整起始范围和结束范围。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击