介绍
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
实现原理
“水仙花数”是指满足某一条件的三位数,可以确定整数的取值范围是 100〜999,每一个位上的立方相加等于这个数本身。
实现代码
int main() {
for (int i = 100; i < 1000; ++i) {
// 百位(hundred)、十位(ten)、个位(individual)
int hun, ten, ind;
hun = i / 100;
ten = (i - hun * 100) / 10;
ind = i % 10;
if (i == hun * hun * hun + ten * ten * ten + ind * ind * ind) {
printf("%d \t", i);
}
}
return 0;
}
总结
求水仙花数的原理很简单——但是,需要注意正确找出每一位上的数。