Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите кто-нибудь!!!
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
gula
Пожалуйста, помогите понять задачу.
Задача о почтовых марках.
Почтовая служба выпускает марки N различных стоимостей и запрещает наклеивать на конверты больше, чем M марок вместе. Стоимость почтового отправления может быть любым натуральным числом.
По заданным N и M вычислить наибольшее целое число B и все возможные наборы марок, такие, что все стоимости от 1 до B можно оплатить марками набора при указанных выше условиях.
mj
Хоть кто нибудь понял условия ?
Я нет  ???
Clane
Да уж, мудренная задачка..
Alex
Если уж вы гиганты по задачам не поняли условие то уж я и подавно!!!
Shadow
а цифры подставить место букв попробуй может поможет легкие и вручную подсчитать :-*
GLuk
{ :o}
Uses
   Crt;
Const
    N = 5; {Количество стоимостей марок}
    Cost : array[1..N] of Word = (1,5,2,4,3); {Цены}
    M = 3; {Максимальное количество наклеиваемых марок}
Var
  i,j,k:Integer;
  MaxN,MaxB,Max:Word;
  a:array[1..1000] of Boolean;
  Comb:Single;
Begin
    ClrScr;
    For i:=1 to 1000 do a[i]:=False;
    {Считаем максимальную сумму}
    MaxN:=1;
    For i:=1 to N do
    If Cost[i]>Cost[MaxN] then MaxN:=i;
    MaxB:=0;
    For i:=1 to M do Inc(MaxB,Cost[MaxN]);
    WriteLn(#32#249#32'Максимальная стоимость B = ',MaxB);
    {Считаем максимальное количество комбинаций для значения N не считая декремент M}
    Comb:=1;
    For i:=1 to M do Comb:=Comb*N;
    WriteLn(#32#249#32'Максимальное количество комбинаций  = ', Comb:3:0);
    {Дальше думай сам, комбинаторику я не проходил, но во всяком случае есть возможность исключить кучу ненужных комбинаций из матрицы, получаемой перебором всего массива}  
End.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.