判断一个数是否为自幂数
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)
自幂数包括:独身数、水仙花数、四叶玫瑰数、五角星数、六合数、北斗七星数、八仙数、九九重阳数、十全十美数。
题目要求:
输入一个整数,判断这个整数是否为自幂数。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x, sum = 0, digit = 0, end;//digit位数,判断整数共有几位;
// end为最后一位 的值
cout << "请输入一个整数:" << endl;
cin >> x; int a = x, b = x;
while (a)//while循环算出整数x是几位数
{
a /= 10;
digit++;
}
while (b) //求和
{
end = b % 10;
sum += pow(end, digit);
b /= 10;
}
if (sum == x) {
cout << "这个数是自幂数!" << endl;
}
else {
cout << "这个数不是自幂数!" << endl;
}
return 0;
}
运行结果: