以下是一个使用函数来判断一个数字是阿姆斯壮数、魔术数还是既不是阿姆斯壮数也不是魔术数的示例代码:
# 判断一个数字是否是阿姆斯壮数
def is_armstrong_number(num):
# 将数字转换为字符串
str_num = str(num)
# 计算数字的位数
n = len(str_num)
# 计算每个数字的n次方之和
sum = 0
for digit in str_num:
sum += int(digit) ** n
# 判断是否是阿姆斯壮数
if sum == num:
return True
else:
return False
# 判断一个数字是否是魔术数
def is_magic_number(num):
# 将数字转换为字符串
str_num = str(num)
# 判断字符串是否包含连续的数字
for i in range(len(str_num)-2):
if int(str_num[i+1]) - int(str_num[i]) == int(str_num[i+2]) - int(str_num[i+1]):
continue
else:
return False
return True
# 判断一个数字是阿姆斯壮数、魔术数还是既不是阿姆斯壮数也不是魔术数
def classify_number(num):
if is_armstrong_number(num):
return "阿姆斯壮数"
elif is_magic_number(num):
return "魔术数"
else:
return "既不是阿姆斯壮数也不是魔术数"
# 测试示例
num1 = 153
num2 = 370
num3 = 407
num4 = 123
print(classify_number(num1)) # 输出:阿姆斯壮数
print(classify_number(num2)) # 输出:阿姆斯壮数
print(classify_number(num3)) # 输出:阿姆斯壮数
print(classify_number(num4)) # 输出:既不是阿姆斯壮数也不是魔术数
在上述代码中,我们定义了三个函数:
is_armstrong_number
函数用于判断一个数字是否是阿姆斯壮数。它将数字转换为字符串,然后计算每个数字的n次方之和,最后与原数字进行比较。is_magic_number
函数用于判断一个数字是否是魔术数。它将数字转换为字符串,然后判断字符串中是否存在连续的数字。classify_number
函数用于判断一个数字是阿姆斯壮数、魔术数还是既不是阿姆斯壮数也不是魔术数。它先判断是否是阿姆斯壮数,如果是则返回"阿姆斯壮数",否则判断是否是魔术数,如果是则返回"魔术数",否则返回"既不是阿姆斯壮数也不是魔术数"。最后,我们通过调用 classify_number
函数来测试示例数字,并打印结果。