В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
pikapchu
pikapchu
01.05.2020 09:34 •  Информатика

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

Показать ответ
Ответ:
ylianа06
ylianа06
10.09.2020 22:27
PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018Внимание! Если программа не работает, обновите версию!

begin

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

end.


И это - всё !
Программа на паскале. , ! ряд чисел фибоначчи задается следующим образом: первые два числа равны 1 (
0,0(0 оценок)
Ответ:
DashaVinter66
DashaVinter66
10.09.2020 22:27

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

Обрати внимание! 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.

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