水仙花数:一个n位数,各位数的n次方之和等于本身
例:153 = 1*3 + 5*3 + 3*3 , 1634 = 1*4 + 6*4 + 3*4 + 4*4
#include#include int main() { int count = 0;//求有几位数的变量 int ret = 0;//存放最后结果 int num = 0;//存放数字 for (int i = 0; i <= 100000; i++) { ret = 0; count = 1;//每位数至少有一位 num = i;//为了不让 i 发生改变,所以将 i 赋值给 num while (num /= 10)//若num/10不为0则位数count++,顺便将num/10赋给num count++; num = i;//因为num发生了改变,所以再次赋值 while (num) { ret += pow(num%10,count);//num%10得到最后一位数 //库函数pow(),表示求num%10的count次方,需包含 num /= 10;//num/10消去最后一位数 } if (ret == i) printf("%d ", i); } return 0; }



