
25.01.2009, 17:19
|
|
Новичок
Регистрация: 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.
Сделал динамическим программированием.. Не знаю, может быть можно проще...
Если что-то не понятно - пиши, помогу разобраться
|
|
|