Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сканер адресов и запись в лог Всем привет. Я хочу сделать сканер адресов для игры Warface на C++. Сигнатуры у меня есть. Например мой сканер там будет искать адрес Отдачи и Точности. Как сделать чтобы он что нащёл создал txt и... https://www.cyberforum.ru/ cpp-beginners/ thread1632696.html Посчитать сумму элементов в каждом столбце и каждой строке матрицы C++
вот условие: 2) Объявить двумерный массив и заполнить его построчно с клавиатуры. После заполнения – показать заполненную матрицу на экран и посчитать сумму элементов отдельно в каждом столбце и...
C++ Подсчет символов UTF-8. Считывание пробельных символов https://www.cyberforum.ru/ cpp-beginners/ thread1632655.html
Написал программу считывания файла с кодировкой UTF-8. Но она не считывает пробельные символы. Программа получает на вход файл из стандартного потока ввода. #include <iostream> using namespace...
C++ Найти заданное число членов ряда Задача: Ввести вещественные числа x (-1≤x≤1) и натуральное число N >0. Найти N первых членов ряда. Нужно чтобы начиналось таким образом и использовать нужно оператор while и не... https://www.cyberforum.ru/ cpp-beginners/ thread1632614.html
Как проще всего работать с Big-Endian C++ ? C++
С++. Как проще всего работать с Big-Endian, используя стандартные операции ?
C++ Сортировка массива структур (файловый ввод/вывод) Здравствуйте помогите пожалуйста разобраться с программой которая записывать ФИО в файл проблема в fwrite(&Stud,sizeof(TStudent),1,Fs); ошибка Unit1.cpp(48): W8060 Possibly incorrect assignment... https://www.cyberforum.ru/ cpp-beginners/ thread1632598.html
C++ Локальные переменные или прямое обращение к get-объекта класса? Собственно, что лучше? Создавать локальные переменные и хранить там значения, полученные из экземпляра или напрямую обращаться к полям объекта? Например: void Array::operator +(Array value) {... https://www.cyberforum.ru/ cpp-beginners/ thread1632586.html C++ Правильное использование throw и abort
Всем привет, тут такой вопрос возник: когда я хочу прервать программу, я могу воспользоваться exit(0), но он перед завершением должен вызвать деструкторы нелокальных переменных, если я их вызывать...
C++ Перемещение каретки мыши по координатам в Linux Стоит Eclipse C/C++. Собираюсь сделать игру типа Adom, Dwarf Fortress, но мешает одно, не знаю как переместить каретку в определенные координаты консоли. Решение типа: void goto( short x, short y... https://www.cyberforum.ru/ cpp-beginners/ thread1632550.html C++ Ошибка с чтением файла Привет, у меня тут проблема. Я сделал программу, которая открывает файл и выводит содержимое на экран, но если я вывожу содержимое второй раз, оно не появляется. Вот весь код: #include <iostream>... https://www.cyberforum.ru/ cpp-beginners/ thread1632532.html
C++ Очередная сортировка пузырьком
Здравствуйте! :) Нашёл я сортировку пузырьком на Википедии: void bubble_sort(int *a, int length) { for (int i = 0; i <= length-1; i++) { for (int j = 0; j <= length-i-1; j++) { ...
C++ Поиск в файле (юникод, кириллица) Всем доброго времени суток! Задание звучит так: Заданному текстовому файлу составить список слов которые встречаются в тексте и сохранить в новый файл с расширением .txt .Позволить пользователю... https://www.cyberforum.ru/ cpp-beginners/ thread1632508.html
0 / 0 / 0
Регистрация: 08.11.2014
Сообщений: 13
0

Использование рекурсии вместо цикла - C++ - Ответ 8586193

06.01.2016, 14:10. Показов 812. Ответов 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include <iostream>
using namespace std;
int a[100], b[100], n;
 
int digit(int n, int p)
{
    return (n >> p & 1);
}
int main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
        cin >> a[i];
    int k = sizeof(int);
    for(int i = 0; i < k; i++)
    {
        int c[2] = {0};
        for(int j = 0; j < n; j++)
            c[digit(a[j],i)]++;
        for(int j = 1; j < 2; j++)
            c[j] += c[j - 1];
        for(int j = n - 1; j > -1;j--)
            b[--c[digit(a[j],i)]] = a[j];
        for(int j = 0; j < n; j++)
            a[j] = b[j];
    }
    for(int i = 0; i < n; i++)
        cout << a[i] <<endl;
    return 0;
}
 
[size="1"][color="grey"][I]Добавлено через 10 минут[/I][/color][/size]
пыталась переделать, но что-то пошло не так...
 
#include <iostream>
 
void out(int n, int t, int* &arr){
    std::cout << "Enter " << n+1 << " element: " << std::endl;
    std::cin >> arr[n];
    if (n < t - 1) out(++n, t, arr);
}
 
void out_sort(int n, int t, int* arr){
    std::cout << "arr[" << n + 1 << "]=" << arr[n] << std::endl;
    if (n < t - 1) out_sort(++n, t, arr);
}
 
void sort1(int countofbits, int n, int t, int* arr, int &count0){
    if (arr[n] >> countofbits & 1 == 0)
        count0++;
    if (n < t - 1) sort1(countofbits, ++n, t, arr, count0);
}
 
void sort2(int i, int t, int* arr, int* &mirrow, int countofbits, int &count0, int &count1){
    mirrow[--((arr[i] >> countofbits & 1 == 0) ? (count0) : (count1))] = arr[i];
    if (i > 0) sort2(--i, t, arr, mirrow, countofbits, count0, count1);
}
 
void sort3(int i, int t, int* &arr, int* mirrow){
    arr[i] = mirrow[i];
    if (i < t - 1) sort3(++i, t, arr, mirrow);
}
 
void sort(int countofbits, int t, int* &arr){
    int count0, count1;
    count0 = 0;
    count1 = t;
    sort1(countofbits, 0, t, arr, count0);
    int* mirrow = (int*)malloc(t*sizeof(int));
    sort2(t, t, arr, mirrow, countofbits, count0, count1);
    sort3(0, t, arr, mirrow);
    if (countofbits < 8*sizeof(int)) Greengrass(++countofbits, t, arr);
}
 
int main() {
    int t;
    std::cout << "Enter n: " << std::endl;
    std::cin >> t;
    int* arr = (int*)malloc(t*sizeof(int));
    out(0, t, arr);
    sort(0, t, arr);    
    out_sort(0, t, arr);
    system("pause");
    return 0;
}
 
[size="1"][color="grey"][I]Добавлено через 36 минут[/I][/color][/size]
#include <iostream>
 
void out(int n, int t, int* &arr){
    std::cout << "Enter " << n + 1 << " element: " << std::endl;
    std::cin >> arr[n];
    if (n < t - 1) out(++n, t, arr);
}
 
void out_sort(int n, int t, int* arr){
    std::cout << "arr[" << n + 1 << "]=" << arr[n] << std::endl;
    if (n < t - 1) out_sort(++n, t, arr);
}
 
void sort1(int countofbits, int n, int t, int* arr, int &count0){
    if (arr[n] >> countofbits & 1 == 0)
        count0++;
    if (n < t - 1) sort1(countofbits, ++n, t, arr, count0);
}
 
void sort2(int i, int t, int* arr, int* &mirrow, int countofbits, int &count0, int &count1){
    mirrow[--((arr[i] >> countofbits & 1 == 0) ? (count0) : (count1))] = arr[i];
    if (i > 0) sort2(--i, t, arr, mirrow, countofbits, count0, count1);
}
 
void sort3(int i, int t, int* &arr, int* mirrow){
    arr[i] = mirrow[i];
    if (i < t - 1) sort3(++i, t, arr, mirrow);
}
 
void sort(int countofbits, int t, int* &arr){
    int count0, count1;
    count0 = 0;
    count1 = t;
    sort1(countofbits, 0, t, arr, count0);
    int* mirrow = (int*)malloc(t*sizeof(int));
    sort2(t, t, arr, mirrow, countofbits, count0, count1);
    sort3(0, t, arr, mirrow);
    if (countofbits < 8 * sizeof(int)) sort(++countofbits, t, arr);
}
 
int main() {
    int t;
    std::cout << "Enter n: " << std::endl;
    std::cin >> t;
    int* arr = (int*)malloc(t*sizeof(int));
    out(0, t, arr);
    sort(0, t, arr);
    out_sort(0, t, arr);
    system("pause");
    return 0;
}


Вернуться к обсуждению:
Использование рекурсии вместо цикла C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2016, 14:10
Готовые ответы и решения:

Выполните, пожалуйста, задание, при этом вместо оператора цикла while используйте оператора цикла do_while
Используя оператор цикла while, напишите программу для вычисления ниже следующей суммы. ...

Использование рекурсии
Написать программу, рекурсивно вычисляющую сумму: Найти сумму ряда с точностью , общий член...

Использование рекурсии
Всем хей. Такое дело, есть почти что рабочая программа. Почти что. Вот код программы. #include...

использование рекурсии с массивами
Ребят,помогите.Нужно описать рекурсивную функцию поиска максимального элемента в одномерном...

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2016, 14:10
Помогаю со студенческими работами здесь

Есть ли в этой программ алгоритма Евклида использование рекурсии?
#include &lt;iostream&gt; using namespace std; int GCD(int number1, int number2);...

вместо цикла рекурсию сделать
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;locale.h&quot; #include &quot;conio.h&quot; #include...

Отличие данных цикла и рекурсии
Подскажите, в чем отличие рекурсии: def Ancestor(guy1, guy2): if guy1 == guy2: ...

Возможно ли вместо рекурсии использовать цикл?
Просто все задачи на рекурсию которые я кое-как &quot;выполнил&quot; легко пишутся с помощью циклов. Можете...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru