Показать сообщение отдельно

  #650  
Старый 20.06.2008, 09:54
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

сортируешь элементы в порядке возрастания
затем берешь функцию
Код:
int check(int curindex,int maxindex,int sum,int rezult)
{
   int i,cursum;
   for(i=curindex;i<maxindex;i++)
   {
      cursum=A[i]+sum;
       if(cursum==rezult)
          return 1;
       else
          if(cursum>rezult)
             return 0;
          else
              if(check(i+1,maxindex,cursum,rezult)==1)
                return 1;
     }
   return 0;
}

// использование функции
for(j=0;j<M;j++)
  if(check(0,j,0,A[j])==0)
    { printf("Minimal is:%d",A[j]); break; }
не проверял бил прямо тут!
 
Ответить с цитированием