#include <stdio.h>
#include <math.h>
unsigned char i,a[9];
int s=0;
main()
{inicio();
for(;;)
for(i=1;i<=8;i++)
{if(final()) return;
while(condicion()) incremento();
}
escritura();
incremento();
}
inicio()
{for(i=1;i<=8;i++) a[i]=1;
a[0]=0;
}
int condicion()
{int j;
for(j=1;j<i;j++)
{if(a[i]==a[j]) return(1);
if(abs(a[i]-a[j])==i-j) return(1);
}
return(0);
}
incremento()
{int j;
if(a[i]<8)
a[i]++;
else
{i--;
incremento();
}
for(j=i+1;j<=8;j++)
a[j]=1;
}
escritura()
{s++;
printf("Solucion num. %3d - ",s);
printf("%d %d %d %d %d %d %d %d \n",
a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);
if(s%10==0)
{printf("Pulse una tecla para continuar\n");
getch();
}
}
int final()
{return(a[0]);
} |