Программка на паскале. Помогите, пожалуйста! Ряд чисел Фибоначчи задается последующим образом:
Программка на паскале. Помогите, пожалуйста! Ряд чисел Фибоначчи задается следующим образом: 1-ые два числа одинаковы 1 ( F 1 = F 2 = 1 ), а каждое последующее одинаково сумму 2-ух прошлых: F i = F i - 1 + F i - 2 . Напишите программку, которая вводит натуральное число N и выводит первые N чисел Фибоначчи.
Входные данные
Входная строчка содержит натуральное число N количество нужных чисел Фибоначчи.
Выходные данные
Программка обязана вывести в одной строке 1-ые N чисел Фибоначчи, разделив их пробелами.
PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018
Внимание! Если программка не работает, обновите версию!
begin
SeqGen(ReadInteger, 1, 1, (i, j)-gt; i + j).Println
end.
И это - всё !
...А если интересует решение на традиционном Паскале, предлагаю просто поддерживать текущее, предыдущее и перед-предшествующее значения в ряду, и в цикле обновлять ответ.
Обрати внимание! longint может беречь значения только до , потому непосредственно в этой программке вывод будет достоверным только для N 46. Ты можешь сделать текущую, предыдущую и перед-предшествующую переменные типа int64, и тогда наибольшее значение N возрастёт до 92. Для бОльших N тебе придётся писать длинноватое сложение.
Код
var
i, n, pred, predpred, cur: longint;
begin
read(n);
if n = 1 then writeln(1)
else if n = 2 then writeln('1 1')
else write('1 1 ');
if n lt; 3 then exit;
pred := 1;
predpred := 1;
for i := 3 to n do
begin
cur := pred + predpred;
write(cur, ' ');
predpred := pred;
pred := cur;
end;
writeln;
end.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.