📅  最后修改于: 2023-12-03 15:11:17.520000             🧑  作者: Mango
阿姆斯壮数(Armstrong number),也被称为自恋数、自幂数或水仙花数,它是一个n位数,其各个数位上数字的n次方之和等于该数本身。
举个例子,我们看一个三位数153。
1^3 + 5^3 + 3^3 = 153
153就是一个阿姆斯壮数,因为它由各个数位上数字的n次方之和等于该数本身。
下面是一个用于检查阿姆斯壮数的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
希望这个程序能够帮助你检查一个数字是否为阿姆斯壮数!