📌  相关文章
📜  用于检查阿姆斯壮数的Python程序(1)

📅  最后修改于: 2023-12-03 15:11:17.520000             🧑  作者: Mango

阿姆斯壮数

阿姆斯壮数(Armstrong number),也被称为自恋数、自幂数或水仙花数,它是一个n位数,其各个数位上数字的n次方之和等于该数本身。

举个例子,我们看一个三位数153。

1^3 + 5^3 + 3^3 = 153

153就是一个阿姆斯壮数,因为它由各个数位上数字的n次方之和等于该数本身。

Python程序

下面是一个用于检查阿姆斯壮数的Python程序。这个程序接收一个整数,并检查它是否是一个阿姆斯壮数。如果是,它将返回True,否则返回False。

def is_armstrong_number(number):
    # 计算数字的位数
    num_digits = len(str(number))
    
    # 计算数字各个位数上的数字的n次方之和
    digit_sum = sum(int(digit) ** num_digits for digit in str(number))
    
    # 检查数值是否相等
    return digit_sum == number

在这个程序中,计算数字的位数使用了Python内置函数len(),计算数字各个位数上数字的n次方之和则使用了Python的列表推导式与内置函数int()sum()。最后,检查数值是否相等只需要使用比较运算符==即可。

下面是一个简单的测试,用于检查该程序是否如预期一样工作:

assert is_armstrong_number(153)  # should return True
assert not is_armstrong_number(4)  # should return False
assert is_armstrong_number(9474)  # should return True
assert not is_armstrong_number(9475)  # should return False
assert is_armstrong_number(1634)  # should return True
assert not is_armstrong_number(1635)  # should return False

希望这个程序能够帮助你检查一个数字是否为阿姆斯壮数!