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

  #1  
Старый 25.01.2009, 17:19
ASM16d
Новичок
Регистрация: 01.09.2008
Сообщений: 24
С нами: 9311400

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

Вот 3-я задача:
Код:
program Task3;
const
  Max = 1000;
var
  N, I: Integer;
  N3, N5: array [0..Max] of Word;
begin
  Write ('N=');
  ReadLn (N);
  FillChar (N3, SizeOf (N3), 255);
  FillChar (N5, SizeOf (N5), 255);
  N3[0] := 0;
  N5[0] := 0;
  for I := 0 to N do
    begin
      if (N3[I+3] + N5[I+3]) > (N3[I] + N5[I]) + 1
      then begin
             N3[I+3] := N3[I] + 1;
             N5[I+3] := N5[I]
           end;
      if (N3[I+5] + N5[I+5]) > (N3[I] + N5[I]) + 1
      then begin
             N3[I+5] := N3[I];
             N5[I+5] := N5[I] + 1
           end;
    end;
  WriteLn ('Troek: ', N3[N]);
  WriteLn ('Pyaterok: ', N5[N]);
  ReadLn;
end.
Сделал динамическим программированием.. Не знаю, может быть можно проще...
Если что-то не понятно - пиши, помогу разобраться
 
Ответить с цитированием