
05.06.2008, 00:55
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
2 plat
1000*s+100*e+10*n+d+1000*m+100*o+10*r+e=10000*m+10 00*o+100*n+10*e+y
индексируем переменные
s-> a[0]
e-> a[1]
n-> a[2]
d-> a[3]
m-> a[4]
o-> a[5]
r-> a[6]
y-> a[7]
далее простая рекурсия с глубиной 8 шагов
Код:
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])
{
// тут вываливай результат ... он в массиве
}
}
}
Последний раз редактировалось Delimiter; 05.06.2008 в 01:01..
|
|
|