描述:
所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。
方法
#include<stdio.h>
int main()
{
printf("输出水仙花数:\n");
int i, a, b, c;
for (i = 100; i <= 999; i++) //整数的取值范围
{
int a = i % 10;//个位数
int b = (i / 10) % 10;//十位数
int c = i / 100;//百位数
if (i == a * a * a + b * b * b + c * c * c) //各位上的立方和是否与原数n相等
printf("%d\t", i);
}
return 0;
}
规律:
巧妙的地方在于:
对于任何大于0的数字N,个位数都是N%10
对于任何大于0的数字N,十位数都是N/10%10
对于任何大于0的数字N,个位数都是N/100%10
对于任何大于0的数字N,个位数都是N/1000%10
可见:个/十/千/百/万上的数字,都是N/(个/十/千/百/万)