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

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

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

 
 Ответить  Открыть новую тему 
> Фибоначчи рекурсия, как выводить на экран каждое число
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


 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;

var
i:longint;
begin
readln(N);
for i:=1 to n do WriteLn(fib(i));
readln;
end.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Спасибо,
не зря говорят все гениальное - просто
Стыдно, как я сама не додумалась :-(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


!flowers.gif
заходи на форум еще!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


natka, интересно узнать - а сколько чисел тебе так удается реально вывести?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


ну я вот только что попробовал 45 вывести... вот они
Цитата
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
9227465
14930352
24157817
39088169
63245986
102334155
165580141
267914296
433494437
701408733
1134903170


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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


А мне, честно говоря, без разницы, с десяток выведет, преподаватель больше все равно не потребует :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(natka @ 11.02.2006 14:22) *

А мне, честно говоря, без разницы, с десяток выведет, преподаватель больше все равно не потребует :-)

фи, какая проза.. dry.gif

Цитата

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

Угу, точно.
Ну, может еще десяток можно вытянуть - но даже самый мощный комп заткнется довольно скоро.
Может, это и оффтоп, но просто именно фибоначевские числа есть классический пример для демонстрации динамичекого программирования. smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


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©;
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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата
даже самый мощный комп заткнется довольно скоро.
Я бы сказал, очень скоро - при n = 48 по-моему... Дальше - переполнение LongInt и все, нет веры результатам... Хорошо, если компилировали в {$R+, Q+}... Но я почему-то все чаще вижу именно обратные примеры... Все почему-то работают с {$R-, Q-} blink.gif

Oops... klem4 уже написАл ... smile.gif
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 30.04.2024 12:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name