水仙花数(Narcissistic number)
也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。(来源百度百科)
例如:1^3 + 5^3+ 3^3 = 153
严格定义来说:水仙花数是自幂数的一种,3位数的3次幂数才称为水仙花数。
**解题思路:**将一个数的每一位都分离出来(原则上都是三位数),然后再求分离出来每一位数字的立方之和与原来的数字进行对比,判断一下如果相等,证明此数字是“水仙花数”。
四位数和五位数计算方式也基本类似,需要将千位和万位提取出来!
#define _CRT_SECURE_NO_WARNINGS 1
#include "stdio.h"
#include "stdlib.h"
//求出0~999之间的所有“水仙花数”并输出。
int main()
{
int i = 0;//输入的数字
int j = 0;//个位取余
int k = 0;//十位取余
int n = 0;//百位取余
for (i = 0; i <= 999; i++)
{
j = i % 10;
k = (i / 10) % 10;
n = i /100;
if (j*j*j + k*k*k + n*n*n == i)
printf("%d ", i);
}
system("pause");
return 0;
}