文章目录
- 1. 题目
- 2. 解题
1. 题目
假设存在一个 k 位数 N,其每一位上的数字的 k 次幂的总和也是 N,那么这个数是阿姆斯特朗数。
给你一个正整数 N,让你来判定他是否是阿姆斯特朗数,是则返回 true,不是则返回 false。
示例 1:
输入:153
输出:true
示例:
153 是一个 3 位数,且 153 = 1^3 + 5^3 + 3^3。
示例 2:
输入:123
输出:false
解释:
123 是一个 3 位数,且 123 != 1^3 + 2^3 + 3^3 = 36。
提示:
1 <= N <= 10^8
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/armstrong-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
class Solution {
public:
bool isArmstrong(int N) {
int bits = 0, sum = 0, n = N;
while(n)
{
bits++;
n /= 10;
}
n = N;
while(n)
{
sum += pow(n%10, bits);
n /= 10;
}
return sum==N;
}
};
0 ms 6.1 MB
长按或扫码关注我的公众号,一起加油、一起学习进步!