ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 05.06.2008, 13:42
Delimiter
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..
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ