class Solution {
public:
bool isArmstrong(int n) {
}
};
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
原站题解
javascript 解法, 执行用时: 56 ms, 内存消耗: 41.1 MB, 提交时间: 2023-10-15 15:33:44
/** * @param {number} n * @return {boolean} */ var isArmstrong = function(N) { var ori = N var bit = String(N).split('') var sum = 0, len = bit.length for (var i = 0; i < len; ++i) { sum = sum + Math.pow(Number(bit[i]), len) } return sum == ori };
python3 解法, 执行用时: 44 ms, 内存消耗: 16 MB, 提交时间: 2023-10-15 15:33:28
class Solution: def isArmstrong(self, n: int) -> bool: k = len(str(n)) sum = 0 for i in str(n): sum += int(i)**k return sum == n
java 解法, 执行用时: 0 ms, 内存消耗: 38 MB, 提交时间: 2023-10-15 15:33:03
class Solution { public boolean isArmstrong(int N) { int tmp = N, sum = 0; int k = String.valueOf(N).length(); for (int i = 0; i < k; i++) { sum += Math.pow(tmp%10, k); tmp /= 10; } return sum == N; } }
cpp 解法, 执行用时: 0 ms, 内存消耗: 6.4 MB, 提交时间: 2023-10-15 15:32:51
class Solution { public: bool isArmstrong(int N) { int k = 0, n = N; while (n) { ++k; n /= 10; } n = N; int sum = 0; while (n) { sum += pow(n % 10, k); n /= 10; } return sum == N; } };
golang 解法, 执行用时: 0 ms, 内存消耗: 1.8 MB, 提交时间: 2023-10-15 15:32:39
func isArmstrong(N int) bool { k := 0 for t := N; t > 0; t /= 10 { k++ } ret := 0 for t := N; t > 0; t /= 10 { mod := t%10 ret += int(math.Pow(float64(mod), float64(k))) } return ret == N }