С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/53: Рейтинг темы: голосов - 53, средняя оценка - 4.60
Kirilllll
4 / 6 / 9
Регистрация: 23.03.2010
Сообщений: 77
1

Сумма чисел Фибоначчи

23.06.2011, 09:07. Просмотров 9962. Ответов 12
Метки нет (Все метки)

Здравствуйте, помогите решить задачу, пожалуйста!

Напишите программу которая вычисляет сумму подряд идущих элементов последовательности Фибоначчи, начиная с номера 1 и заканчивая номером n. Программа не должна использовать циклы!

Заранее спасибо!
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2011, 09:07
Ответы с готовыми решениями:

Определить, сколько из данных чисел входит во множество чисел Фибоначчи
Приветствую форумчане!Помогите пожалуйста решить задачку! Условие: Дано 100...

Дано множество из 15 целых чисел от 1 до 50. Определить, сколько среди них чисел, принадлежащих к множеству Фибоначчи.
Помогите пожалуйста.Вот задание:Дано множество из 15 целых чисел от 1 до 50....

Вычислить разность между S1 и S2, где S1-сумма четных чисел от I1 до I2, S2-сумма четных чисел от J1 до J2.
Помогите пожалуйста написать вот такую программу: Вычислить разность между...

Сумма всех натуральных чисел от 1 до 1000, сумма цифр которых равна 10
Я сначала хотел написать рекурсивную функцию, которая сводила бы расчёт от...

Найти первые N чисел Фибоначчи
2. Найти первые N чисел Фибоначчи. Каждое число Фибоначчи равно сумме двух...

12
Freestyle
6 / 1 / 1
Регистрация: 09.12.2008
Сообщений: 32
23.06.2011, 10:40 2
Числа Фиббоначчи { F[i] } определяются по формулам
F[0] = F[1] = 1; F[i] = F[i-1] + F[i-2] при i = 1, 2, 3, ...
(каждое очередное число равно сумме двух предыдущих).
Вычислить сумму всех чисел Фиббоначчи, которые не превосходят
заданного натурального числа М.
Система тестов
╔═══════╤════════╤════════════════════════════════╗
║ Номер │ Данные │ Результат ║
║ теста │ │ ║
╟─────────────── ─────────────────────────────╢
║ 1 │ M = 10 │ S = 1 + 1 + 2 + 3 + 5 + 8 = 20 ║
╟───────┼────────┼────────────────────────────────╢
║ 2 │ M = 1 │ S = 1 + 1 = 2 ║
╚═══════╧════════╧════════════════════════════════╝



Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 Program SummaFib;
    Uses Crt;
    Var M,                    { заданное число }
        F0, F1, F2,           { три последовательных числа Фибоначчи}
        S          : Integer; { сумма чисел Фибоначчи}
  BEGIN
    ClrScr;
    Write('Введите натуральное М : ');
    ReadLn(M);
 
    F0:=1; F1:=1; F2:=2;
    S:=4;           {4 - сумма первых трех чисел Фибоначчи}
    Write('Числа Фибоначчи, не превосходящие ', M, ' :', F0:4, F1:4);
 
    While F2<=M do
      begin
        F0:=F1; F1:=F2; Write(F1 : 4);
        F2:=F0+F1; S:=S+F2;
      end;
 
    S:=S - F2; {вычитание из суммы последнего числа, которое превосходит М}
    WriteLn; WriteLn;
    WriteLn('О т в е т : Сумма этих чисел равна ', S); ReadLn
  END.
Добавлено через 52 секунды
нашел подобную задачу. надеюсь вам поможет данное решение.
0
Dekio
Фрилансер
Эксперт С++
5838 / 1219 / 499
Регистрация: 23.11.2010
Сообщений: 3,377
Записей в блоге: 1
23.06.2011, 10:43 3
Факториал без циклов
Pascal
1
2
3
4
5
6
7
function fib(num: Integer): Longint;
begin
  if num<=2 then
  fib:=1
  else
  fib:=fib(num-1)+fib(num-2);
end;
Сумму сами найдете
0
Kirilllll
4 / 6 / 9
Регистрация: 23.03.2010
Сообщений: 77
23.06.2011, 10:44  [ТС] 4
Freestyle, скажите пожалуйста с какого сайта это взято??? Просто я в нете не нашёл!(((
1
Puporev
Модератор
55500 / 42591 / 29441
Регистрация: 18.05.2008
Сообщений: 100,748
23.06.2011, 10:48 5
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses crt;
function SumFib(n:integer):integer; {Рекурсивное вычисление суммы чисел Фибоначчи }
function Fib (n: integer):integer;{Рекурсивное вычисление чисел Фибоначчи }
 begin
  if n<=2 then Fib:=1
  else Fib:=Fib(n-2)+Fib(n-1);
 end;
begin
if n=1 then SumFib:=1
else SumFib:=SumFib(n-1)+Fib(n);
end;
var n:integer;
Begin
clrscr;
write('n=');
readln(n);
write('Сумма чисел Фибоначчи c номера 1 до номера ',n,'=',SumFib(n));
readln
end.
0
Freestyle
6 / 1 / 1
Регистрация: 09.12.2008
Сообщений: 32
23.06.2011, 10:49 6
http://borlpasc.narod.ru/progprost.htm взято оттуда. пример №20
0
Puporev
Модератор
55500 / 42591 / 29441
Регистрация: 18.05.2008
Сообщений: 100,748
23.06.2011, 10:50 7
Freestyle,У автора однозначно написано БЕЗ ЦИКЛОВ, а прочих вариантов на форуме много...

Добавлено через 55 секунд
Kirilllll, А ты сам циклы от рекурсии отличаешь?
0
Freestyle
6 / 1 / 1
Регистрация: 09.12.2008
Сообщений: 32
23.06.2011, 10:54 8
Цитата Сообщение от Puporev Посмотреть сообщение
Freestyle,У автора однозначно написано БЕЗ ЦИКЛОВ, а прочих вариантов на форуме много...
Ну по крайней мере оболочка есть, дописать и исправить ее куда легче чем писать с нуля.
0
Kirilllll
4 / 6 / 9
Регистрация: 23.03.2010
Сообщений: 77
23.06.2011, 11:03  [ТС] 9
Puporev, отличаю, нужно рекурсию... Сделать не могу, кстати
Freestyle, эта программа работает не правильно

Добавлено через 5 минут
Puporev, если ввести числа от 39-44, например, то работает бесконечно....

Добавлено через 3 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function Fn(n: longint): longint;
begin
  if (n<=2) then
    begin
      Fn:= 1;
    end
  else
    begin
      Fn:= Fn(n-1)+Fn(n-2);
    end;
end;
 
function Sn(n: longint): longint;
begin
  if (n=0) then
   begin
     Sn:= 0;
   end
 else
   begin
     Sn:= Sn(n-1) + Fn(n);
   end;
end;
 
var
  n: longint;
begin
  read(n);
  Writeln(Sn(n));
end.
вот мое решение... но тут зацикливаеться с 40..
0
Puporev
Модератор
55500 / 42591 / 29441
Регистрация: 18.05.2008
Сообщений: 100,748
23.06.2011, 11:26 10
Цитата Сообщение от Kirilllll Посмотреть сообщение
Puporev, если ввести числа от 39-44, например, то работает бесконечно...
Так никто Вас это и не заставляет делать. Вас просто видимо обучают принципам рекурсии. Но, как известно, заставь дурака Богу молиться, он и лоб расшибет. Можете напримаер использовать тип real, или extended. Будете получать числа больше, но ждать результата по пол дня. Не везде рекурсия уместна, а часто и вредна. Есть циклические алгоритмы, которые вместе с длинной арифметикой вычисляют точные значения для чисел из 1000 знаков за пару секунд...
1
Kirilllll
4 / 6 / 9
Регистрация: 23.03.2010
Сообщений: 77
23.06.2011, 18:10  [ТС] 11
Puporev, просто я отправляю программу в "тестирующую систему", там ровно 60 тестов, из них 5 у меня не выходят никак! И программа выполняеться не потому что считает, а потому что не правильно.... Может сможете как нибудь помоч(((?
0
Puporev
Модератор
55500 / 42591 / 29441
Регистрация: 18.05.2008
Сообщений: 100,748
23.06.2011, 18:54 12
Цитата Сообщение от Kirilllll Посмотреть сообщение
Программа не должна использовать циклы!
Ну и кто там проверяет, использовал цикл или нет?

Добавлено через 30 секунд
С циклом-то намного проще и надежнее...
0
Kirilllll
4 / 6 / 9
Регистрация: 23.03.2010
Сообщений: 77
23.06.2011, 18:56  [ТС] 13
Puporev, ну понимаете, я отсылаю это в заочную школу..... ситема подставляет эти числа и выводит правильно или нет, потом учитель просто смотрит на саму конструкцию программы и т.д..... Ладно забейте
0
23.06.2011, 18:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2011, 18:56

Построить множество чисел Фибоначчи
Построить множество чисел Фибоначчи. Выделить подмножество чисел Фибоначчи,...

Найти первые N чисел Фибоначчи
2. Найти первые N чисел Фибоначчи. Каждое число Фибоначчи равно сумме двух...

Вывести последовательность n чисел Фибоначчи
Здравствуйте уважаемые программисты, дело в том, что я от нечего делать решил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru