噢,那就重写一个吧——
#include "stdio.h"
void y(int *p,int i){
int j,t,a,b,c;
if(i!=9)
for(j=i;j<=9;j++){
t=p[i],p[i]=p[j],p[j]=t;
y(p,i+1);
t=p[i],p[i]=p[j],p[j]=t;
}
else if(p[0] && p[4] && p[8]){
a=p[0]*1000+p[1]*100+p[2]*10+p[3];
b=p[4]*1000+p[5]*100+p[6]*10+p[7];
c=p[8]*10+p[9];
if((a-b)*c==900 && (a!=5012 || b!=4987 || c!=36)){
printf("(%d-%d)*%d=%d\n",a,b,c,900);
}
}
}
int main(int argv,char *argc[]){
int x[10]={1,2,3,4,5,6,7,8,9,0};
y(x,0);
return 0;
}
运行结果: