Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
#1

Через рекурсию посчитать сумму элементов фиббоначи - C++

02.04.2014, 12:52. Просмотров 306. Ответов 7
Метки нет (Все метки)

Есть последовательность Фиббоначи: 1 1 2 3 5 8 13
Посчитать сумму послед-сти до данного n-ого числа с помощью рекурсивной функции.
Вот мой код
C++
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
31
32
33
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <time.h>
using namespace std;
 
int calc(int[10], int);
 
int main()
{
    int num;
    const int size=10;
    int a[size];
    a[0]=a[1]=1;
    for(int i=2;i<size;i++)
    {
        a[i]=a[i-1]+a[i-2];
        cout<<a[i]<<" ";
    }
    cout<<endl;
    cout<<"Enter number: ";
    cin>>num;
    cout<<calc(a,size)<<endl;
    system("pause");
    return 0;
    
}
 
int calc(int a[10], int n)
{
    
    return (calc(a[n--],n)+calc(a[n-2],n));
}
Добавлено через 1 минуту
Не могу просто представить как это должно выглядеть. Прочел тему про рекурсию, не несколько не помогло, т.к. здесь у меня массив чисел.

Добавлено через 17 секунд
Не могу просто представить как это должно выглядеть. Прочел тему про рекурсию, не несколько не помогло, т.к. здесь у меня массив чисел.

Добавлено через 13 часов 42 минуты
Помогите же кто нибудь
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 12:52     Через рекурсию посчитать сумму элементов фиббоначи
Посмотрите здесь:

В одномерном массиве посчитать сумму элементов до максимального.Оформить через контейнер Vector. - C++
В одномерном массиве посчитать сумму элементов до максимального.Оформить через контейнер Vector Вот код:исправьте пожалуйста а то я...

Посчитать число N Фиббоначи - C++
Здравствуйте, есть задача: нужно посчитать число N Фиббоначи по модулю 10^9+7(ограничение до 10^18),вот код, по идее всё должно работать...

Запись элементов стека через рекурсию - C++
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; using namespace std; /*НАША СТРУКТУРА*/ struct List { int x; //информационный...

Определить сумму элементов массива, используя рекурсию - C++
Определить сумму элементов массива. используя рекурсию функции #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using...

Изменение порядка следования элементов в массиве через рекурсию - C++
Помогите реализовать через рекурсию. без указателей.. Задача: изменить порядок следования элементов в массиве на обратный. Пример: &lt;...

Числа Фиббоначи через динамический массив - C++
Среди первых N-чисел Фибоначчи найти такие, которые начинаются или заканчиваются на М. Последовательность Фибоначчи определяется так:...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 1
02.04.2014, 13:05     Через рекурсию посчитать сумму элементов фиббоначи #2
^Tecktonik_KiLLeR, мне просто неудобно напоминать человеку вашего форумного возраста о наличие поиска по форуму:
Рекурсия: вычисление чисел Фибоначчи
Рекурсия в нахождении числа ряда Фибоначчи.
Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции)
рекурсия и массивы: числа Фибоначчи
Число Фибоначчи и рекурсия: код выдает неверные результаты
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
02.04.2014, 20:06  [ТС]     Через рекурсию посчитать сумму элементов фиббоначи #3
SatanaXIII, я знаю. Не правильно. Рекурсию представляю, но не могу написать код, потому что работа с массивами и надо посчитать сумму элементов до какого то конкретного индекса. Прощу прощения, конечно, но я не понимаю. Поэтому решил все-таки открыть пост.
А поиском воспользовался.
castorsky
1950 / 1040 / 78
Регистрация: 29.11.2013
Сообщений: 3,262
02.04.2014, 20:10     Через рекурсию посчитать сумму элементов фиббоначи #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вычислить сумму всех чисел Фибоначчи, которые не превосходят заданного натурального числа М
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
02.04.2014, 20:12  [ТС]     Через рекурсию посчитать сумму элементов фиббоначи #5
Вот взял функцию для возврата ччисла фиббоначи. Но не могу тоже самое с массивом сделать.
C++
1
2
3
4
5
6
7
8
9
unsigned    long fibo(unsigned  long number)
{
    if(number==1)
        return 1;
    else    if (number==0)
        return 0;
    else
        return fibo(number-1) + fibo(number-2);
}
Добавлено через 55 секунд
Вот взял функцию для возврата ччисла фиббоначи. Но не могу тоже самое с массивом сделать.
C++
1
2
3
4
5
6
7
8
9
unsigned    long fibo(unsigned  long number)
{
    if(number==1)
        return 1;
    else    if (number==0)
        return 0;
    else
        return fibo(number-1) + fibo(number-2);
}
castorsky
1950 / 1040 / 78
Регистрация: 29.11.2013
Сообщений: 3,262
02.04.2014, 20:15     Через рекурсию посчитать сумму элементов фиббоначи #6
Скопирую сюда с адаптацией под данные условия. Есть еще раздолье для оптимизаций алгоритма.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdint.h>
 
uint64_t fibo(int n, uint64_t fib1, uint64_t fib2) {
  return (n < 1) ? fib1 : fibo(n - 1, fib2, fib1 + fib2);
}
 
uint64_t sum_fibs_rec(uint32_t M, uint64_t fib, uint64_t acc, int inc) {
  return inc > M ? acc : sum_fibs_rec(M, fibo(inc, 0, 1), acc + fib, inc + 1);
}
 
uint64_t sum_fibos(uint32_t M) { 
  return sum_fibs_rec(M, 0, 0, 0);
}
 
int main()
{
  printf("%lu\n", sum_fibos(8));  
  return 0;
}
Добавлено через 45 секунд
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
Вот взял функцию для возврата ччисла фиббоначи
Это наихудший вариант из всех алгоритмов нахождения числа фибоначчи.
Dani
1278 / 636 / 56
Регистрация: 11.08.2011
Сообщений: 2,277
Записей в блоге: 2
Завершенные тесты: 1
02.04.2014, 20:18     Через рекурсию посчитать сумму элементов фиббоначи #7
^Tecktonik_KiLLeR,
C++
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
31
32
33
#include <iostream>
#include <Windows.h>
#include <time.h>
using namespace std;
 
int calc(int[10], int);
 
int main()
{
    int num;
    const int size=10;
    int a[size];
    a[0]=a[1]=1;
    for(int i=2;i<size;i++)
    {
        a[i]=a[i-1]+a[i-2];
        cout<<a[i]<<" ";
    }
    cout<<endl;
    cout<<"Enter number: ";
    cin>>num;
    cout<<calc(a,size)<<endl;
    system("pause");
    return 0;
    
}
 
int calc(int a[10], int n)
{
    if(n==0)
        return 0;
    return calc(a, n-1) + a[n-1];
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2014, 20:38     Через рекурсию посчитать сумму элементов фиббоначи
Еще ссылки по теме:

За счёт адресной арифметики посчитать сумму элементов последовательности из 15 элементов символьного типа - C++
Привет всем,помогите,пожалуйста :) За счёт адресной аремфметики посчитать сумму элементов последовательности из 15 элементов символичного...

посчитать сумму элементов - C++
помогите пожалуйста, я плохо понимаю СИ и не могу решить задачу( Написать программу, которая считает 30 ∑ (ai-bi)^2 i=1 ...

Посчитать сумму цифр стоящих друг от друга через две - C++
Доброе время суток! Ребята, объясните, как на основе этого кода я смогу посчитать сумму цифр стоящих друг от друга через две То есть, я...

Через указатели посчитать сумму двух чисел и записать в третье - C++
Через указатели посчитать сумму двух чисел и записать в третье. Делать через функции.


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

Или воспользуйтесь поиском по форуму:
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
02.04.2014, 20:38  [ТС]     Через рекурсию посчитать сумму элементов фиббоначи #8
Dani, Спасибо большое.
Yandex
Объявления
02.04.2014, 20:38     Через рекурсию посчитать сумму элементов фиббоначи
Ответ Создать тему
Опции темы

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