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

C++

Войти
Регистрация
Восстановить пароль
 
IIapa3uT
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 25
#1

Рекурсивные функции. Разделение эл. массива, пока не останется 1 элемент - C++

27.06.2016, 15:55. Просмотров 218. Ответов 1
Метки нет (Все метки)

Вся суть в том что нужно взять массив из 10 элементом и разделить его на пополам (например от 1 до 5 и от 6 до 10)
потом левую часть которая (от 1 до 5) снова разделить на 2 части (например, от 1 до 3 и от 4 до 5) и так пока не останеться 1 число. Когда оно остаётся необходимо вычислить синус этого числа.
Фишка в том что неоходимо все части так вычислить
1-2-3-4-5/6-7-8-9
1-2-3/4-5/6-7/8-9
1-2/3/4/5/6/7/8/9
1/2/3/4/5/6/7/8/9

Думали решить программу одним способом, но он не подошел, программа зависала, один умный человек написал на листке как необходимо её написать, но там мне сложно разобрать подчерк. Скрин приложил.

Кто располагает временем помогите дописать. Спасибо!
Рекурсивные функции. Разделение эл. массива, пока не останется 1 элемент
Рекурсивные функции. Разделение эл. массива, пока не останется 1 элемент
Рекурсивные функции. Разделение эл. массива, пока не останется 1 элемент
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "stdafx.h"
#include <iostream>
using namespace std;
float isin(float a[], int m)
{
    mas[10]
        func(has, 0, 9);
    func(Heat m[], int left, int right);
    { if (right - left > 1)
        {
        func(m, left, (right - ****) / 2));
            {func(m, right - left) / 2, right);
    else if (right-left==1)
        }
    }
}
 
    /*int k = 0;
    if (m == 1)
                return a[m];
    else {isin(a, m / 2);
    cout << k + 1;*/
 
}
 
int _tmain(int argc, _TCHAR* argv[])
 
 
 
{   setlocale(LC_ALL, "");
 
 
float t;
    int n;
    t = 0;
    cout << "Введите размер массива " << endl;
    cin >> n ;
    float *mas = new float[n];
    cout << "Заполните массив из " << n << " чисел:" << endl;
        for (int i = 0; i<n; i++)
    {
        cin >> mas[i];
        
        }
        for (int i = 0; i<n; i++)
        cout << mas[i] << "  ";
 
        t = isin(mas, n);
 
        cout << endl << t;
 
    system ("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2016, 15:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивные функции. Разделение эл. массива, пока не останется 1 элемент (C++):

Из последовательности удалять каждый K-ый элемент до тех пор, пока не останется одно число - C++
Всем привет. Есть следующее задание: Данна последовательность длинной N (1, 2, ..., N). Дано число K. Из последовательности удалять...

Обнулять по очереди максимальный и минимальный элементы массива, пока не останется последний. - C++
Помогоите решить чайнику 2 задачи по c++ . 1) Дан одномерный массив положительных вещественных чисел. Преобразовать этот массив...

Рекурсивные функции: найти заданный элемент последовательности - C++
Помогите написать программу при помощи рекурсивной функции, нужно найти 7-ой элемент последовательности.

Рекурсивные и не рекурсивные функции (вычисление суммы всех натуральных чисел от 1 до n) - C++
Всем привет. Заранее извиняюсь за мб глупые вопросы и навязчивость. Но у меня есть одна просьба. Помогите пожалуйста написать...

Какой элемент останется в кольце последним, если начать по очереди удалять из списка каждый n элемент - C++
Создать структуру с именем Subject с полями: фамилия, имя. Сформиро-вать замкнутое кольцо (односвязный список, у которого последний...

Выводить строку, сокращая каждый раз на 1 символ, пока в строке не останется 1 символ - C++
' Напишите программу, которая вводит строку и выводит её, сокращая каждый раз на 1 символ до тех пор, пока в строке не останется 1 символ....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IIapa3uT
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 25
29.06.2016, 00:11  [ТС] #2
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "conio.h"
#include <cmath>
#include <math.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <iostream>
#include <iterator>
using namespace std;
vector<double>my_massiv; //объявляеммассив
double proizvedenie; //произведение
//рекурсивнаяфункция
int poisk(int kolvo)
{
    if (kolvo>0)
    {
        int i = my_massiv.size() - kolvo;
        //леваячастьмассива
        if (i <= my_massiv.size() / 2)
            proizvedenie = sin(my_massiv[i]);
 
        int j = kolvo - 1;
        //правая часть массива
        if (j>my_massiv.size() / 2)
            proizvedenie = sin(my_massiv[i]);
 
        kolvo--;
        poisk(kolvo);
    }
    else
    {
        if (proizvedenie > 0) return 1;
        else return 0;
    }
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    setlocale(LC_CTYPE, "rus");
 
    cout << "Введи размер массива: ";
    int size;
    cin >> size;
    cout << endl;
 
    for (int i = 0; i<size; i++)
    {
        cout << "Введи " << i + 1 << " элемент: ";
        int buf;
        cin >> buf;
        my_massiv.insert(my_massiv.end(), buf);
    }
 
    cout << endl << "Массив: ";
    for (int i = 0; i<my_massiv.size(); i++)
    {
        cout << my_massiv[i] << "  ";
    }
    //вызываем рекурсивную функцию проверки условия
    int rez = poisk(size);
    if (rez == true)
    cout << "есть такие элементы" << endl;
            else cout << "нет таких элементов" << endl;
 
            system("pause");
            return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2016, 00:11
Привет! Вот еще темы с ответами:

Функции обработки массива (определить произведение элементов массива, заменить модулем все элементы массива, уничтожить элемент с заданным значением) - C++
Вот задания,не могу сделать ни одного из них,буду благодарен за помощь. Написать функции для выполнения операций над одномерным...

Считалка: удаление каждого пятого элемента в списке, пока не останется 1 элемент - Lisp
Помогите, пожалуйста! Мои знания Lisp'a ограничиваются элементарными на уровне &quot;сумма элементов списка&quot; :(

Считалка: удаление каждого пятого элемента в списке, пока не останется 1 элемент - F#
Такую считалку нужно реализовывать на цикличном списке. Но как это сделать на F#, я не понимаю. Помогите, пожалуйста! Заранее спасибо!

Убрать из массива каждое второе число, пока не останется одно - QBasic
Подскажите, надо написать программу, в которой надо будет ввести максимальное число, затем она должна убрать все вторые числа в этом...


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

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

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