水仙花数就是一个三位数,其各位数字的立方和正好等于该数本身,水仙花数一共有153,370,371,407这4个,下面给出c语言的程序求出来。
核心算法就是把各位数字拆开,对于一个三位数,各位可以直接对10求余数(%),对于十位,因为是int类型,可以直接除10之后在对10求余,而对于百位根据int值的规律可以直接除100,下面给出具体源代码。
#include <stdio.h>
int main(){
int i, a, b, c;
for (i = 2; i <= 999; i++)
{
a = i % 10;
b = i / 10 % 10;
c = i / 100;
if (a * a * a + b * b * b + c * c * c == i)
printf("%d ", i);
}
getchar(); //vs环境下闪退解决方案
return 0;
}