ekaterinaefimenko16
14.11.2021 14:24

Құрал саймандардың дұрыс атауын теріп жазыңыз . Басу/тарту. Менің артымнан жүр . Контур . Таңдау.Өшіргіштер . Доға .Палитра .Сахнаның көрінісін айналдыру .Лупа .Сызық. Айналу .Орын ауыстыру .Фигуралар .Басу/тарту .Рулетка . *

Құрал саймандардың дұрыс атауын теріп жазыңыз . Басу/тарту. Менің артымнан жүр . Контур . Таңдау.Өшіргіштер . Доға .Палитра .Сахнаның көрінісін айналдыру .Лупа .Сызық. Айналу .Орын ауыстыру .Фигуралар .Басу/тарту .Рулетка . ​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Пулmn
15.06.2021 12:15

Ln - это от line
То есть при write/writeln в первом случае на следующую строку не переходит, а во втором - переходит. Со вводм что-то похожее. Например
for i := 1 to 10 do read (a);

10 раз идет read. Можно ввести сразу 10 чисел, они сохранятся, и после уже не будет требовать вводить еще 9 раз, а возьмет из буфера. А при readln - нифига подобного. Буфер будет очищаться и придется каждый раз вводить заново.
Еще readln без параметров часто используется для ожидания любой клавиши, а writeln - для простого перевода на новую строку, что не проходит с read и write. 

0,0(0 оценок)
Ответ:
апк8
11.12.2021 19:51

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 во избежание преполнения.

 

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота