假设存在一个 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 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
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
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句