IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Фибоначчи рекурсия, как выводить на экран каждое число
natka
сообщение 11.02.2006 13:52
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Женский

Репутация: -  0  +


Нужна программа, которая выводит на экран N первых чисел последовательности Фибонначи. Для вычисления нужно использовать рекурсивную функцию.
Программа есть, но она выводит только последнее число, не могу понять как сделать, чтобы она выводила все числа. Может кто подскажет.
Код

var
N:integer;
function fib(n:integer):longint;
begin
   case n of
     0: fib:= 0;
     1,2:fib:= 1
     else
     fib:=fib(n-1)+fib(n-2);
   end;
end;

begin
readln(N);
WriteLn(fib(N));
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 11.02.2006 14:47
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
Дальше не стал, долго...итеративный способ надо применять если хочеться больше..


Начиная с 47 уже и длинную арифметику ;)

uses crt;

procedure Fib(n : LongInt);
var
   a,b,c,i : LongInt;
begin
   if (n = 1) or (n = 2) then writeln(1)
    else begin
       a := 1;
       b := 1;
       c := 0;
       i := 2;
       repeat
          c := a + b;
          a := b;
          b := c;
          inc(i);
       until i = n;
       writeln(c);
     end;
end;

var
   n,i : LongInt;
begin
   clrscr;
   //readln(n);
   n := 47;
   writeln;
   for i := 1 to n do Fib(i);
   readln;
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 3.08.2025 17:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"