1、题目描述
2、解题思路
1、统计数字 N 的位数。可以把N变为字符串然后求长度,也可以对N进行除以10取整,直到N变为0,统计除了多少次;
2、得到 N 的位数 e 后,遍历 N 的每一位数,计算它的 e 次方,然后累加得到 sum;
3、返回 N == SUM;
3、解题代码
class Solution {
public boolean isArmstrong(int N) {
int e = 1; // N 的位数
int n = N;
while ((n /= 10) != 0) e++;
n = N;
int sum = 0; // 每一位上的数字的 k 次幂的总和
while (n != 0) {
sum += (int) Math.pow(n % 10, e);
n /= 10;
}
return N == sum;
}
}