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