Напишите программу (pascalabc.net) которая будет выводить на экран элементы последовательности трибоначчи -первые элементы последовательности :0,0,1,1,2,2,4,7,13,24,44,81,159,... . каждый элемент , начиная с четвёртого , равен сумме трёх предыдущих : a✓n=a✓n-1+a✓n-2+a✓n-3
1.По заданному n вывести элемент последовательности.
2.для заданного x вывести элементы последовательности меньше x
Answers & Comments
//PacalABC.NET 3.4.2
//Используется формула аналогичная формуле Бине для чисел
//Фибоначчи
const
index = power(33, 0.5);
a1 = power((19 + 3 * index), 1 / 3);
a2 = power((19 - 3 * index), 1 / 3);
b = power((586 + 102 * index), 1 / 3);
var
n, i: smallint;
x: uint64;
function tribonacthi(n: smallint): biginteger;
begin
if (n = 1) or (n = 2) then result := 0
else
result := RoundBigInteger(3 * b * ((power((1 / 3 * (a1 + a2 + 1)), n - 1)) / (power(b, 2) - 2 * b + 4)));
end;
begin
try
n := readinteger('Введите n:');
x := readinteger('Введите x:');
except
on system.formatexception do
begin
writeln('Неверный формат ввода');
exit;
end;
end;
writeln('1)', tribonacthi(n), ' ');
write('2)');
i := 1;
while (tribonacthi(i) < x) do
begin
write(tribonacthi(i), ' ');
i += 1;
end;
end.