Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
1

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

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

Author24 — интернет-сервис помощи студентам
Есть последовательность Фиббоначи: 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 минуты
Помогите же кто нибудь
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.04.2014, 12:52
Ответы с готовыми решениями:

Посчитать сумму и количество элементов массива используя рекурсию
Задана последовательность положительных чисел, признаком конца которых служит отрицательное число....

Посчитать n^(n-2)^(n-4)^(n-6)... через рекурсию
Добрый день, форумчане! Помогите, пожалуйста, с заданием. Необходимо посчитать n^((n-2)^(n-4)^(n-6)...

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

Дан массив из 10 целых чисел. Используя рекурсию, посчитать сумму первой и последней цифры в каждом числе
Например: 12 229 14 942 1111 7462 10 64 8724 909 Должно превратиться в: 3 11 5 11 2 9 1 10 12 18

7
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
02.04.2014, 20:06  [ТС] 3
SatanaXIII, я знаю. Не правильно. Рекурсию представляю, но не могу написать код, потому что работа с массивами и надо посчитать сумму элементов до какого то конкретного индекса. Прощу прощения, конечно, но я не понимаю. Поэтому решил все-таки открыть пост.
А поиском воспользовался.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
02.04.2014, 20:10 4
Лучший ответ Сообщение было отмечено AnonymC как решение

Решение

Вычислить сумму всех чисел Фибоначчи, которые не превосходят заданного натурального числа М
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
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);
}
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
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 Посмотреть сообщение
Вот взял функцию для возврата ччисла фиббоначи
Это наихудший вариант из всех алгоритмов нахождения числа фибоначчи.
0
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
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];
}
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
02.04.2014, 20:38  [ТС] 8
Dani, Спасибо большое.
0
02.04.2014, 20:38
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2014, 20:38
Помогаю со студенческими работами здесь

Найти сумму через рекурсию
y=\sum_{i=1}^{n} (i+k) Проверьте код пожалуйста. // Вариант 1.Задача 1. program rec1; var...

Вычислить сумму не через рекурсию
Есть задача её нужно сделать двумя способами в одной и через функции(Function) решить эту задачу с...

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

Как через рекурсию вычислить сумму ряда?
Ряд задан формулой k-го члена: ak=(2–а2k-1)/2, известно, что a0=1 Как через рекурсию на языке...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru