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 | |