Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

rain87



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
#include <stdio.h>
#include <string.h>
 
#define MAX 10000
 
char dyn[MAX]={1};
char nnom[MAX];
int how[MAX];
char len[MAX];
 
void main()
{
  puts("Enter money (<10000):");
  int m,i,j;
  scanf("%d",&m);
  int noms[100],nnoms=-1,t;
  do{
    printf("Enter nominal (or 0 to finish): ");
    scanf("%d",&noms[++nnoms]);
  }while(noms[nnoms]);
  for(i=0;i<nnoms;i++)  
    for(j=1;j<=nnoms-i;j++)  
      if(noms[j-1]<noms[j])  
      {  
        t=noms[j-1];  
        noms[j-1]=noms[j];  
        noms[j]=t;  
      }
  i=0;
  while(i<nnoms)
  {
    for(j=0;j<m;j++)
      if(dyn[j])
    if(j+noms[i]<=m)
      if(!dyn[j+noms[i]]||len[j]+1<len[j+noms[i]])
      {
        dyn[j+noms[i]]=1;
        how[j+noms[i]]=j;
        nnom[j+noms[i]]=i;
        len[j+noms[i]]=len[j]+1;
      }
    i++;
  }
  if(!dyn[m])puts("Really can't exchange...");
  else
  {
    puts("Using following row:");
    while(m)
    {
      printf("%d ",noms[nnom[m]]);
      m=how[m];
    }
  }
}

Всего записей: 1744 | Зарегистр. 21-06-2006 | Отправлено: 21:23 09-11-2006
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru