Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2012, 20:50   #1
RusseLfStyle
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 24
По умолчанию 4/5 тестов. Фибоначчи.

Скажите, почему 1 тест "-",и подправьте код, пожалуйста.


Последовательностью Фибоначчи называется последовательность чисел a0, a1, ..., an, ..., где
a0 = 0, a1 = 1, ak = ak-1 + ak-2 (k > 1).
Входные данные:
Во входном файле записано целое число N (0 ≤ N ≤ 100).

Выходные данные:
В выходной файл выведите N-е число Фибоначчи.

Пример входного файла (input.txt):
4

Пример выходного файла (output.txt):
3



Код:
Program fib;
var 
    n:integer;D : Array [0..100] of LongInt;
    Function F(X : integer) : LongInt;
Begin
    if d[x]=0 then
    if (X = 1) or (X = 2)
    then D[X] := 1
    else if (x=0) then d[x]:=0
    else D[X] := F(x - 1) + F(x - 2);
    F := D[X];
End;
 begin
     readln(n);
     write(f(n));
end.
RusseLfStyle вне форума Ответить с цитированием
Старый 13.03.2012, 21:11   #2
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

А какой первый тест?
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.
Lasur вне форума Ответить с цитированием
Старый 13.03.2012, 21:16   #3
RusseLfStyle
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 24
По умолчанию

.... "Пример входного файла" и "Пример выходного файла"
Я имел ввиду не первый, а один. 1-ый, 2-ой, 4-ый и 5-ый тесты проходит наура.
RusseLfStyle вне форума Ответить с цитированием
Старый 13.03.2012, 21:18   #4
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

И что у вас на выходе?

PS. "or (X = 2)" зачем?
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.
Lasur вне форума Ответить с цитированием
Старый 13.03.2012, 21:25   #5
RusseLfStyle
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 24
По умолчанию

потому что 2-ой элемент последовательности тоже равен 1. А что у меня на выходе?
В моих проверках все работает,я и пишу, потому что тестер по не понятным для меня причинам выдает не правильности.
RusseLfStyle вне форума Ответить с цитированием
Старый 13.03.2012, 21:32   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

1) Зачем массив?
2) Рекурсия это круто но обязательно?
если да то пробуй так
Код:
function fib (x: LongInt): LongInt;
begin
    fib := 0;
    if x = 1 then fib := 0 
    else
        if x = 2 then fib := 1
            else
                if x >= 3 then
                    fib := fib(x-1) + fib(x-2)
end;
писал с потолка!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303

Последний раз редактировалось Hacker19_90; 13.03.2012 в 22:19.
Hacker19_90 вне форума Ответить с цитированием
Старый 13.03.2012, 21:34   #7
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

2ой элемент последовательности и так вычисляется по вашему алгоритму как
d[2] = d[0] + d[1]

А по поводу тестера... Что за тестер? Если встроенный в IDE, то, простите, не помогу - никогда с Pascalем не работал. Я только алгоритм проверил.
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.
Lasur вне форума Ответить с цитированием
Старый 13.03.2012, 21:52   #8
RusseLfStyle
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 24
По умолчанию

Hacker19_90, твой код ничем не отличается. Я вводил массив, чтоб сократить время выполнения программы(оно ограничено). Отличие в том, что прога твоего типа выбивает "Т"- Превышение лимита по времени выполнения теста, а моя "-"- Тест не пройден. Рекурсия всегда ведет к относительно большим затратам времени...
RusseLfStyle вне форума Ответить с цитированием
Старый 13.03.2012, 22:13   #9
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Hacker19_90, твой код ничем не отличается.
Да что ты говоришь?
Может поспорим?
Скажи **** толком что за тест который должен пройти код!
А не *** разводить тут ромашку - "это подходит, а не это не подходит"!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 13.03.2012, 22:17   #10
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
0 ≤ N ≤ 100
наверно поэтому и не пашет!
Poma][a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание тестов на Delphi kuzmich Софт 11 06.06.2013 23:49
Подарки. 4/5 тестов RusseLfStyle Паскаль, Turbo Pascal, PascalABC.NET 2 08.03.2012 20:19
Последовательность Фибоначчи. Сумма в последовательности Фибоначчи, сравниваемая с числом N Neitrosha Помощь студентам 5 05.04.2011 09:19
Программа тестов DimOn4Ik Помощь студентам 2 25.01.2010 22:04
Реализация тестов aleksei111 Общие вопросы Delphi 2 20.05.2008 12:15