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

Рекурсия c ++ Спираль! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Генерация случайного лабиринта http://www.cyberforum.ru/cpp-beginners/thread372511.html
Вообщем требуется сгенерировать лабиринт 12х12 с одним входом и выходом. Лабиринт представляется символьным массивом, где '#' - стенка, а '.' - путь, по которому можно пройти. Собственно у меня затык с пониманием как надо реализовать. Максимум что получилось по нормальному одну длинную дорожку вправо и вниз сделать. Всё остальное вместо лабиринта рисует некое поле. Собственно первое что пришло...
C++ Проблема с функцией инициализацией структуры Здравствуйте столкнулся с проблемой при инициализации полей структуры #include <iostream> #include <string> using namespace std; struct shop{ char film; char producer; char genre; int rating; int price; http://www.cyberforum.ru/cpp-beginners/thread372488.html
Создание класса, непросто! C++
Нужно создать класс, который ассоциируется с объемом и поддерживает операции сложения, вычитания и выдачу значения объекта в литрах или галлонах (используйте статичи переменные для сохранения коэффициента). Применить перегрузку операций. Заранее спасибо.
помогите написать на с++ C++
в одномерном массиве находятся координаты N точек плоскости. Они распологаются в следующем порядке:х1,у1,х2,у2,х3,у3 и т.д. определить минимальный радиус круга с центром в начале координат,который содержит все точки.
C++ Циклы http://www.cyberforum.ru/cpp-beginners/thread372480.html
Дана перестановка. Найдите число циклов в ней. Входные данные Число N (1 <= N <= 10000), затем перестановка. Выходные данные Выведите ответ. Пример
C++ Помогите разобраться со строками. #include "StdAfx.h" #include <iostream> #include <string> using namespace std; int main() { setlocale(LC_CTYPE,""); подробнее

Показать сообщение отдельно
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
26.10.2011, 00:03     Рекурсия c ++ Спираль!
с рекурсией
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
#include <stdio.h>
#include <stdlib.h>
 
void recursive(int **arr, int order,
    int pos, int val);
 
int main()
{
    int **arr, order = 1;
    int i, j;
 
    while (printf("\nenter an order or 0 to exit: ") && scanf("%d", &order)
            && order > 0) 
    {
        arr = (int **) malloc(order * sizeof(int *));
        for (i = 0; i < order; i++)
            arr[i] = (int *) malloc(order * sizeof(int));
 
        recursive(arr, order, 0, 1);
 
        putchar('\n');
        for (i = 0; i < order; i++) {
            for (j = 0; j < order; j++)
                printf("%3d", arr[i][j]);
            putchar('\n');
            free(arr[i]);
        }
        free(arr);
    }
    return 0;
}
 
void recursive(int **arr, int ord, int pos, int val)
{
    int i, j;
 
    if (pos < ord / 2 + (ord & 1 ? 1 : 0)) {
        for (j = pos; j < ord - pos; j++) 
            arr[pos][j] = val++;
        j -= 2;
        for (i = pos + 1; i < ord - pos; i++)
            arr[i][ord - pos - 1] = val++;
        i--;
        for ( ; j >= pos; j--)
            arr[i][j] = val++;
        j++;
        for (i--; i >= pos + 1; i--)
            arr[i][j] = val++;
        recursive(arr, ord, pos + 1, val);
    } 
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru