n位数水仙花数pta上的

img

img


??switch?为什么会这样子?把break去掉也是这样的

题主的代码里,switch()case 部分没问题,问题出在第16行至第23行间代码里。建议换种写法,供参考:

#include <stdio.h>
#include <math.h>
int main()
{
    int N, i, p, t, sum, n, m, k;
    printf("input num(3<= N <=7):");
    scanf("%d", &N);
    p = pow(10, N);
    for (i = pow(10, N - 1); i < p; i++) {
        for (sum = 0, t = i; t > 0; t /= 10) {
            m = N; k = 1;
            n = t % 10;
            while (m--)k *= n;
            sum += k;
        }
        if (sum == i)
            printf("%d\n", i);
    }
    return 0;
}