1134. 阿姆斯特朗数 🔒
题目描述
给你一个整数 n
,让你来判定他是否是 阿姆斯特朗数,是则返回 true
,不是则返回 false
。
假设存在一个 k
位数 n
,其每一位上的数字的 k
次幂的总和也是 n
,那么这个数是阿姆斯特朗数 。
示例 1:
输入:n = 153 输出:true 示例: 153 是一个 3 位数,且 153 = 13 + 53 + 33。
示例 2:
输入:n = 123 输出:false 解释:123 是一个 3 位数,且 123 != 13 + 23 + 33 = 36。
提示:
1 <= n <= 108
解法
方法一:模拟
我们可以先计算出数字的位数 $k$,然后计算每一位上的数字的 $k$ 次幂的总和 $s$,最后判断 $s$ 是否等于 $n$ 即可。
时间复杂度 $O(\log n)$,空间复杂度 $O(\log n)$。其中 $n$ 为给定的数字。
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|