Vitalevich
?>

1. Для чего используют повороты фрагментов рисунка? 2. С какой целью к рисунку добавляют текст?

Информатика

Ответы

Klyucharyova

var

k : byte;
arr : array of int64;
function Fn (c : byte) : int64;
begin
if arr[c - 1] <> 0 then
begin
Fn := arr[c - 1];
exit;
end;
if c < 3 then Fn := 1
else Fn := Fn (c - 1) + Fn (c - 2);
arr[c - 1] := Result;
end;

begin
read (k);
setlength (arr, k);
writeln (Fn (k));
end.

var
n : byte;
arr : array of int64;

tmp : int64;
function Fn (c : byte) : int64;
begin
if arr[c - 1] <> 0 then
begin
Fn := arr[c - 1];
exit;
end;
if c < 3 then Fn := 1
else Fn := Fn (c - 1) + Fn (c - 2);
arr[c - 1] := Result;
end;

begin
read (n);
setlength (arr, n);
tmp :=  (Fn (n));

tmp := 0;

for i := 1 to n do

  tmp := (tmp + arr[i]) mod 2;

if tmp = 1 then writeln ('No') else writeln ('Yes');

end.

 

Это нисходящее динамическое программирование. В массиве Arr храняится сами числа. Рекурсивная функция Fn (n) возвращает N-ое число. В б) мы сначала просчитываем n чисел (то есть считаем число n, так как для него нужны все предыдущие), а потом ищем их сумму. Так как числа могут быть большими, то мы берем сразу их остаток от деления 2 во избежание преполнения.

 

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

1. Для чего используют повороты фрагментов рисунка? 2. С какой целью к рисунку добавляют текст?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

prettymarina2015
dpodstrel85
yakushkinayuliya
emilbadalov
okutihamv
galereyaas1568
ruslanriad10
necit12
Klicheva_Ermachenkova1536
Grigorev_Nikita794
ii090758
Pavlov447
koll23
es196
Ольга Сергей1822