
05.06.2008, 13:42
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
Код дан в рамках Си (Керниган и Ритчи)
Код:
#include "stdio.h"
int a[8]; // массив в котором подбираем цифры (хотя они в виде чисел)
void step(int cur)
{
int i,j,fl;
if(cur<8) // проверяю не пора ли заканчивать
{
for(i=0;i<10;i++) // подбираю цифру
{
for(j=0,fl=0;j<cur && fl==0;j++) // проверяю не было ли такх цифр
if(a[j]==i)
fl=1;
if(fl==0)
{
a[cur]=i;
step(cur+1); // ухожу в глубь
}
}
}
else
{ // тут самое важное! Проверяю соответствуют ли цифры основному условию
if((1000*a[0]+100*a[1]+10*a[2]+a[3]+1000*a[4]+100*a[5]+10*a[6]+a[1])==(10000*a[4]+1000*a[5]+100*a[2]+10*a[1]+a[7]))
{
printf("\r\nРезультат:\r\n");
printf("s->%d\r\n",a[0]);
printf("e->%d\r\n", a[1]);
printf("n->%d\r\n", a[2]);
printf("d->%d\r\n", a[3]);
printf("m->%d\r\n", a[4]);
printf("o->%d\r\n", a[5]);
printf("r->%d\r\n", a[6]);
printf("y->%d\r\n", a[7]);
}
}
}
void main()
{
step(0);
}
Последний раз редактировалось Delimiter; 05.06.2008 в 13:50..
|
|
|