题解 | 变种水仙花
变种水仙花
https://www.nowcoder.com/practice/c178e3f5cc4641dfbc8b020ae79e2b71
#include <stdio.h>
#include<stdlib.h>
int main() {
int i =0;
int m = 0;
int* p = (int*)malloc(m*sizeof(int));
if(p == NULL)
{
return 1;
}
for(i = 0;i<100000;i++)
{
if(10000<=i && i<100000)
{
int a = i/10000;
int b = i/1000 - a*10;
int c = i/100 - a*100 -b*10;
int d = i/10 - a*1000 -b*100 -c*10;
int e = i - a*10000 -b*1000 -c*100 -d*10;
if((a*(b*1000 + c*100 +d*10 +e)+(a*10 +b)*(c*100 + d*10 +e)+(a*100 + b*10 +c)*
(d*10 +e)+(a*1000 + b*100 +c*10 +d)*e) == i)
{
m++;
int*p2 =(int*)realloc(p,m*sizeof(int));
if(p2 != NULL)
{
p = p2;
p2 =NULL;
}
*(p+m -1)=i;
}
}
}
int n = 0;
for(n = 0;n<m;n++)
{
printf("%d ",*(p+n));
}
return 0;
}