Предмет: Информатика, автор: HNLLZ

Программа на паскале. Помогите, пожалуйста! Ряд чисел Фибоначчи задается следующим образом: первые два числа равны 1 ( F 1 = F 2 = 1 ), а каждое следующее равно сумму двух предыдущих: F i = F i - 1 + F i - 2 . Напишите программу, которая вводит натуральное число N и выводит первые N чисел Фибоначчи.

Входные данные
Входная строка содержит натуральное число N – количество нужных чисел Фибоначчи.

Выходные данные
Программа должна вывести в одной строке первые N чисел Фибоначчи, разделив их пробелами.

Ответы

Автор ответа: Аноним
0

PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018

Внимание! Если программа не работает, обновите версию!

begin

 SeqGen(ReadInteger, 1, 1, (i, j)-> i + j).Println

end.


И это - всё !

Приложения:

Giammy: развития системы образования*
Аноним: Но я жил в свое время в Минске полгода, я знаю, что эти люди могут, когда захотят. Москва, Киев, Новосибирск, Минск, Казать и Ереван еще в советское время были научными и прозводственно-техническими центрами в радиопромышленности по линии вычтехники и софта
MaxikMK: Советское время, хех)
Нам каждую лекцию по микроэлектронике распинаются о том, как хорошо всё было тогда)
Аноним: Ну видите ли, Вы об этом слушаете кого-то, а я тогда жил, учился и работал.
Аноним: Конечно, тогда не было мобильников, пепси и жвачек. Но Вам вряд ли можно объяснить, что вы на них сейчас променяли.
MaxikMK: Если смотреть на это все со стороны, то я тоже сейчас слушаю "кого-то" (вас). Думаете, преподаватель, которому за 65, не знает, как там жилось?)
MaxikMK: Что-то мы уже уходим в даль, давайте не будет захламлять комменты)
Аноним: Не слушайте, я же Вас не неволю. Кстати, мне тоже "за 65".
Аноним: Раньше можно было в личке общаться, теперь это закрыли. Вот и захламляем ((
Аноним: 2GIAMMY: вчера в РАВС переименовали генератор для вещественных последовательностей. Его теперь зовут PatritionPoints вместо Patrition,
Автор ответа: Wani4kaa
1

...А если интересует решение на классическом Паскале, предлагаю просто поддерживать текущее, предыдущее и пред-предыдущее значения в ряду, и в цикле обновлять ответ.

Обрати внимание! longint может хранить значения только до 2^{31}-1, поэтому конкретно в этой программе вывод будет достоверным только для 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 < 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.


Wani4kaa: Работает?
HNLLZ: Какие-то проблемы с компиляцией. Но ладно, все равно спасибо
Wani4kaa: Под Free компилируете?
HNLLZ: Да
Wani4kaa: Сейчас проверю
Wani4kaa: Это решение запускается на PascalABC.Net, но необязательно новейших версий. Проблема в функции min - в FPC она не встроена. Сейчас попрошу отправить на доработку.
Wani4kaa: Исправлено. FPC 3.0.4 компилируется и запускается без ошибо.
HNLLZ: Да, я вспомнила, как раз из-за min не работала
HNLLZ: Благодарю за исправление)
Похожие вопросы
Предмет: Русский язык, автор: Morozovhome2008
Предмет: Литература, автор: berezovskayati
Предмет: Алгебра, автор: спииисать