水仙花数是指一个 N N N位数正整数( N > = 3 N>=3 N>=3),它的每位上的数字的 N N N次幂之和等于它本身。例如 153 = 1 3 + 5 3 + 3 3 153=1^3+5^3+3^3 153=13+53+33。
#include <stdio.h> int main() { int n; printf("请输入一个数:\n"); scanf_s("%d", &n); int first = 1; int i = 1; while (i < n) { first *= 10; i++; } // printf("first=%d\n", first); // 遍历100-999 i = first; while (i < first * 10) { int t = i; int sum = 0; do{ int d = t % 10; t /= 10; int p = 1; int j = 0; while (j <n) { p *= d; j++; } sum += p; } while (t >0); if (sum == i) { printf("%d\n", i); } i++; } return 0; }