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

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

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

Ответы 12

  • Если смотреть на это все со стороны, то я тоже сейчас слушаю "кого-то" (вас). Думаете, преподаватель, которому за 65, не знает, как там жилось?)
  • Что-то мы уже уходим в даль, давайте не будет захламлять комменты)
    • Автор:

      hickman
    • 5 лет назад
    • 0
  • Не слушайте, я же Вас не неволю. Кстати, мне тоже "за 65".
    • Автор:

      cali64
    • 5 лет назад
    • 0
  • Раньше можно было в личке общаться, теперь это закрыли. Вот и захламляем ((
  • 2GIAMMY: вчера в РАВС переименовали генератор для вещественных последовательностей. Его теперь зовут PatritionPoints вместо Patrition,
    • Автор:

      aurora
    • 5 лет назад
    • 0
  • Сейчас проверю
  • Это решение запускается на PascalABC.Net, но необязательно новейших версий. Проблема в функции min - в FPC она не встроена. Сейчас попрошу отправить на доработку.
    • Автор:

      simba21
    • 5 лет назад
    • 0
  • Исправлено. FPC 3.0.4 компилируется и запускается без ошибо.
  • Да, я вспомнила, как раз из-за min не работала
    • Автор:

      guy
    • 5 лет назад
    • 0
  • Благодарю за исправление)
    • Автор:

      esparza
    • 5 лет назад
    • 0
  • PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018Внимание! Если программа не работает, обновите версию!

    begin

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

    end.

    И это - всё !
    answer img
    • Автор:

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

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

    answer img
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years