PTA水仙花数——C语言

出现运行超时 希望可以在原代码上修改

#include
#include
int main()
{
int N,number=1,j=2,sum=0;
scanf("%d",&N);

number=pow(10,N-1);

int i=number;
while(i10)
{
    sum = 0;
    int t = i;
    do
    {
    int    d = t % 10;
        t/=10;
        sum += pow(d,N);

    }while(t>0);
    if(sum==i)
        {
            printf("%d\n",sum);
        }
    i++;
}
return 0;

}

img

改动处见注释,供参考:

#include <stdio.h>
#include <math.h>
int main()
{
    int N, number = 1, j = 2, sum = 0;
    scanf("%d", &N);
    number = pow(10, N - 1);
    int i = number;
    while (i < number * 10)
    {
        sum = 0;
        int t = i;
        do
        {
            int d = t % 10;
            t /= 10;
            int k = N, kk = 1;//修改
            while (k--) kk *= d;//修改
            sum += kk; //pow(d, N);
        } while (t > 0);
        if (sum == i)
        {
            printf("%d\n", sum);
        }
        i++;
    }
    return 0;
}

什么是水仙花数 咋看你这计算量很大