📅  最后修改于: 2023-12-03 15:20:32.765000             🧑  作者: Mango
本练习题需要你编写一个程序,用于检查一个给定的数是否为阿姆斯壮数。阿姆斯壮数是指一个 $n$ 位数,它的各位数字的 $n$ 次方之和等于该数本身。例如,$153$ 是阿姆斯壮数,因为 $1^3 + 5^3 + 3^3 = 153$。
输入包含一个正整数 $n$,表示要检查的数的位数,接下来一行包含一个 $n$ 位的正整数 $x$,表示要检查的数。
如果 $x$ 是阿姆斯壮数,输出一行 YES,否则输出一行 NO。
输入:
3
153
输出:
YES
下面是 Python 代码示例:
n = int(input())
x = int(input())
sum = 0
temp = x
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
if x == sum:
print("YES")
else:
print("NO")
以上代码通过输入 $n$ 和 $x$,计算各个数字的 $n$ 次方之和,判断是否等于 $x$,进而判断 $x$ 是否是阿姆斯壮数。如果是,则输出 YES
,否则输出 NO
。
需要注意的是,在计算各个数字的 $n$ 次方时需要使用 **
运算符,表示幂运算。在计算过程中,可以使用一个 sum
变量来保存各位数字的 $n$ 次方之和,使用一个 temp
变量来保存输入的数,逐位取出数字进行计算。