程式設計師的面試問題
作法:邏輯的推理來加快速度
/**********************************************************/
#include<stdio.h>
#include<stdlib.h>
main()
{
int E,F,O,R,T,Y,N,S,I,X;
int temp[6]={0};
for(Y=0;Y<10;Y++)
for(N=0;N<10;N++)
{
if((2*N+Y)%10!=Y||N==Y) continue;
temp[1]=(2*N+Y)/10;
for(T=0;T<10;T++)
{
if(T==N||T==Y) continue;
for(E=0;E<10;E++)
{
if((temp[1]+2*E+T)%10!=T||E==T||E==N||E==Y) continue;
temp[2]=(temp[1]+2*E+T)/10;
for(R=0;R<10;R++)
{
if(R==E||R==Y||R==N||R==T) continue;
for(X=0;X<10;X++)
{
if((temp[2]+R+2*T)%10!=X||X==E||X==Y||X==N||X==T||X==R) continue;
temp[3]=(temp[2]+R+2*T)/10;
for(O=0;O<10;O++)
{
if(O==E||O==Y||O==N||O==T||O==R||O==X) continue;
I=(temp[3]+O)%10;
if(I==E||I==Y||I==N||I==T||I==R||I==X||I==O) continue;
temp[4]=(temp[3]+O)/10;
for(F=0;F<10;F++)
{
if(F==E||F==Y||F==N||F==T||F==R||F==X||F==O||F==I) continue;
S=temp[4]+F;
if(S==E||S==Y||S==N||S==T||S==R||S==X||S==O||S==I||S==F||S>9) continue;
else
printf("%d%d%d%d%d + %d%d%d + %d%d%d = %d%d%d%d%d\n",F,O,R,T,Y,T,E,N,T,E,N,S,I,X,T,Y);
}
}
}
}
}
}
}
return 0;
}