列表

详情


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。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: bool isArmstrong(int n) { } };

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
}

上一题