Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
1

Рекурсия

22.10.2018, 22:33. Показов 872. Ответов 1
Метки нет (Все метки)

Подскажите пожалуйста!Для заданного одномерного массива B из N элементов найти сумму выражений, вычисляемых по формуле sin(B[i]) * cos (B[i]) . Рекурсивную функцию применять каждый раз отдельно для каждой из половин массива. Рекурсивные вызовы заканчивать, когда останется только один элемент

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
double check_array(const int* a, size_t first, size_t last) {
 
    double res;
    if (first == last) {
        double firs = a[first];
        firs += sin(firs)*cos(firs);
        return firs;
    }
    size_t mid = first + (last - first) / 2;
    return res=check_array(a, first, mid) * check_array(a, mid + 1, last);
}
 
void main()
{
    int A[8] = {1,2,3,4,5,6,6,7};
    cout << check_array(A, 0, 7);
    system("pause");
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2018, 22:33
Ответы с готовыми решениями:

Рекурсия. Рекурсия с мемоизацией
Добрый день. Задача такова: У нас есть массив для длины строки (пусть будет M=20). У нас есть некие...

Рекурсия
Помогите с лабой!!! Нужен код Спасибо заранее

Рекурсия
Есть такой код. В нем рисуется что то вроде линейки. Данный код предназначен для иллюстрации работы...

Рекурсия
Не совсем разобрался с заданиями помогите!

1
Мозгоправ
1729 / 1023 / 468
Регистрация: 01.10.2018
Сообщений: 2,136
Записей в блоге: 2
23.10.2018, 03:07 2
Лучший ответ Сообщение было отмечено vfhbf как решение

Решение

Думаю, так будет лучше:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
double check_array(const double* a, size_t first, size_t last) {
 
    if (first == last) {
        return sin(a[first]) * cos(a[first]);
    }
    size_t mid = first + (last - first) / 2;
    return check_array(a, first, mid) + check_array(a, mid + 1, last);
}
 
void main()
{
    double A[8] = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.6, 0.7};
    cout << check_array(A, 0, 7);
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2018, 03:07

Рекурсия
Нужно решить через рекурсию

Рекурсия
#include &lt;iostream&gt; #include &lt;random&gt; #include &lt;time.h&gt; #include &lt;conio.h&gt; #include &lt;Windows.h&gt;...

Рекурсия
Привет, помогите пожалуйста надо вычислить рекурсивную функцию :...

рекурсия
Добрый вечер! Пожалуйста, помогите разобраться с рекурсией. Как ее вычислять, когда у меня есть...

C++ Рекурсия
Через рекурсию) Если можно, то исправьте код) ...

рекурсия в с++ ( ?: = if() else)
Подскажите, пожалуйста, как сделать с помощью рекурсивной функции? int sum (int *arr, size_t...


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

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

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