Последовательность чисел Фибоначчи образуется так: первый и второй члены последовательности равны единице, каждый следующий член равен сумме двух
10-11 класс
|
предыдущих. (1,1,2,3,5,13...).Дано натуральное число n. n>=3. а)Найти k-й член этой последовательности; б)Для заданного n определить верно ли, что сумма первых n-членов последовательности есть четное число. Помогите, нужно составить программу для решения данных задач!
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;-5;256;10455
Вот нам повезло, — сказал Дима по дороге. — Эта штука из чистой меди, да и весит килограммов тридцать.
Какая там медь? — возразил Боря. — Это ржавое железо. Но ты не унывай. В нем сто килограммов будет.
Да, это явно не медь, — вмешался Костя, — а весу пятьдесят килограммов, я думаю, наберется.
Каждый из ребят оказался прав только в одном из своих предположений.
a. (1 v 0) ^ (1 ^ a)
b. ((1 v 0) ^ (1 ^ 0)) v (0 v 1)
c. a ^ 0 v 1 v a
d. (a v 1) v (b v 0)
e. a ^ 1 v (a v 1) ^ 0
Читайте также
0,если их несколько то номер крайней правой.
2) Дано натуральное число. Определить сумму m его последних цифр
3)Дано натуральное число. определить его максимальную цифру.
4) дано предложение. заменить в нем все вхождения под строку str1 на подстроку str2
5) последовательность чисел Фибоначчи образуется так: первый и второй член последовательности равен 1, каждый следующий равен сумме двух предыдущих(1,1,2,3,5,,8,12..) Дано натуральное число n>=3 : а) найти k-й член последовательности б)получить первые n членов последовательности в)для заданного n определить верно ли,что сумма первых n членов есть четное число
предыдущих(1,1,2,3,5,8,13,...)найти числа последовательности фибоначчи сумма которых меньше пятизначного числа n.
Числа Фибоначчи : последовательность, каждый следующий элемент которой равен сумме 2-х предыдущих., причем известно, что первый член последовательности f0=0, в второй f1 =1.
Вводится последовательность целых чисел, заканчивающаяся нулем. Преобразовывать последовательность следующим образом:
1) заменить отрицательные числа в последовательности на их модули и вывести получившуюся последовательность;
2) в полученной последовательности заменить четные числа на максимальное число последовательности, вывести результат;
3) в полученной последовательности вычесть из каждого члена последовательности 2, вывести результат;
4) в полученной последовательности заменить отрицательные на 0, вывести результат.
Пример.
Последовательность: 1 2 3 0
1) 1 2 3
2) 1 3 3
3) –1 1 1
4) 0 1 1
2. В последовательности чисел сравнить, что больше сумма положительных или про-изведение отрицательных.
3. В последовательности чисел определить предпоследнее отрицательное число. (При решении введите дополнительную переменную для хранения предпоследнего отрицательного числа).