水仙花数(Narcissistic number,也叫阿姆斯特朗数)是指:
一个 n 位数 的每一位数字的 n 次方之和 等于它本身的数字。
🌼 定义举例
如果一个数字是 n 位,那么把它的每一位数字取出来,分别做 n 次方,然后相加。如果结果等于原数,那么它就是水仙花数。
🌼 经典示例(三位水仙花数)
三位数时(n = 3),只要: abc=a3+b3+c3abc = a^3 + b^3 + c^3abc=a3+b3+c3
满足这个式子的三位数就是水仙花数。
c++代码实现
#include <iostream>
using namespace std;
int main() {
//用循环获取所有百位数
int e = 100;
//用三个变量表示百位十位个位
int a, b , c;
do {
a = e / 100;//百位
b = e / 10 % 10;//十位
c = e % 10;//个位
//用限制条件求出水仙花数
if (a*a*a + b*b*b + c*c*c == e) {
cout << e << endl;
}
e++;
}while (e < 1000);
return 0;
}