题解 | 变种水仙花
变种水仙花
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; }