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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dartk
10 / 50 / 2
Регистрация: 15.03.2009
Сообщений: 146
#1

Количество спиралей - C++

17.02.2012, 05:00. Просмотров 349. Ответов 1
Метки нет (Все метки)

Решение задачи мне не нужно, требуется только логическое разъяснение хода действий.

Спираль — это ломаная не нулевой длинны без самопересечений, вершины которой размещены в точках с целыми координатами на плоскости. Каждое последующее звено ломаной, должно быть повёрнуто на 90 градусов относительно предыдущей по часовой стрелке. Рассмотрим прямоугольник размерами n на m. Для каждой спирали, её первая вершина должна начинаться с левой верхней вершины прямоугольника, а вторая лежит на верхней стороне прямоугольника. Нужно написать программу, которая будет вычислять максимально возможное количество таких спиралей, в границах заданного прямоугольника.

Пример построения спиралей для прямоугольника 2х2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2012, 05:00     Количество спиралей
Посмотрите здесь:

Определить количество слов в заданном тексте и количество символов в каждом слове - C++
Определить количество слов в заданном тексте и количество символов в каждом слове

Операции с текстом (длина, количество слов, количество двойных пробелов) - C++
Составить программу, позволяющую для строки , введенного пользователем , определять : ( 1) его длину ; (2) количество слов ; (3)...

Найти количество двух- и количество трехразрядных чисел в заданной последовательности - C++
Помогите,пожалуйста, написать программу. Вводится последовательность из Nцелых чисел. Найти количество двух-и количество трехразрядных...

Текстовый редактор: наименование, фирма-производитель, количество окон, количество шрифтов, стоимость - C++
текстовый редактор: наименование, фирма-производитель, количество окон, количество шрифтов, стоимость

Как написать программу которая считала бы количество букв в string и количество гласных? - C++
Помогите, пожалуйста, написать программу которая считала бы количество букв в string и количество гласных. Цифры и пробелы,...

Найти количество четных и количество нечетных элементов ряда - C++
Здравствуйте, помогите решить задачу: 1. Найти количество четных и количество нечетных элементов ряда: 2+x 3+x 4+x…10+x 2. Найти...

Определить среднемесячное количество осадков, количество засушливых месяцев - C++
Помогите дописать, пожалуйста. Осталось определить: среднемесячное количество осадков, количество засушливых месяцев (когда количество...

Посчитать количество четных и количество нечетных членов массива - C++
Здравствуйте! Прошу помочь в создании одномерного динамического массива с целыми числами. Посчитать кол-во четных и кол-во нечетных. ...

Найти количество двух- и количество трехразрядных чисел в последовательности - C++
Вводится последовательность из N целых чисел. Найти количество двух и количество трех разрядных чисел в последовательности (функцией...

Операции с текстом (длина, количество цифр, количество букв) - C++
Составить программу, позволяющую для строки , введенного пользователем , определяет: ( 1) его длину ; (2) количество цифр ; (3) количество...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
17.02.2012, 07:55     Количество спиралей #2
Цитата Сообщение от Dartk Посмотреть сообщение
Решение задачи мне не нужно, требуется только логическое разъяснение хода действий.
Я бы решал эту задачу рекурсией. Глобально объявил бы int res=0; и массив bool a[n][m]={false};
Перед началом вызова рек.функции:
a[0][0]=a[0][1]=true;
затем вызов рек.функции: rec(0, 1, 0);
Сама рек.функция:
C++
1
2
3
4
5
6
void rec(int ii, int jj, int napr)// ii - Г*îìåð ñòðîêè îòêóäГ* Г±ГІГ*ðòóåì, jj - Г*îìåð ñòîëáöГ* îòêóäГ* Г±ГІГ*ðòóåì, napr - Г*Г*ГЇГ°Г*âëåГ*ГЁГҐ ГЄГ*ГЄГЁГ¬ ïîïГ*ëè Гў Г±ГІГ*ðòîâóþ òî÷êó
{
    res++;
    // çäåñü ó÷èòûâГ*Гї napr îïðåäåëÿåòå äâГ* âîçìîæГ*ûõ Г*Г*ГЇГ°Г*âëåГ*ГЁГї, ГЁ åñëè ìîæГ*Г® õîäèòü Гў ГЅГІГЁГµ Г*Г*ГЇГ°Г*âëåГ*ГЁГїГµ (ГЅГІГ® îïðåäåëÿåòñÿ Г§Г*Г*Г·ГҐГ*ГЁГҐГ¬ Г¬Г*Г±Г±ГЁГўГ* a[][]), ГІГ® âûçûâГ*éòå rec(). ГЌГҐ Г§Г*áûâГ*éòå ïîìå÷Г*ГІГј ïðîéäåГ*Г*ûå òî÷êè ïåðåä âûçîâîì rec() ГЁ Г*ГҐ Г§Г*áûâГ*éòå ГіГЎГЁГ°Г*ГІГј ГЅГІГЁ ìåòêè ïîñëå âûçîâГ* rec()
 
}
Yandex
Объявления
17.02.2012, 07:55     Количество спиралей
Ответ Создать тему
Опции темы

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