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

Прокомментируйте, пожалуйста рекурсию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как узнать, инициализирован ли указатель? http://www.cyberforum.ru/cpp-beginners/thread327783.html
Появился вопрос, как узнать в C++ инициализирован ли определенный указатель?
C++ Нерабочий ссылочный элемент Подскажите пожалйсто почему в данной программе #include<iostream> using namespace std; struct a {int b,c; }; int e(a, bool&); int main () {setlocale(LC_ALL,"Rus"); http://www.cyberforum.ru/cpp-beginners/thread327763.html
C++ Циклы, массивы, простейшие программы
Доброго времени суток. В программировании не силен. Решил обратиться к людям понимающим в этом вопросе больше. Если кто может помочь буду признателен. Задачи привожу ниже по списку разделов. Циклы: 1. Среди всех n-значных чисел (n = 1,2,3,4) указать те, сумма цифр которых равна данному числу k. 2. Натуральное число М называется совершенным, если оно равно сумме всех своих делителей,...
C++ Удалить элементы из структуры
Дали вот такое задание на С++ 1. сделать Структура "Владелец автомобиля": - Фамилия, имя, отчество; - Номер автомобиля; - Номер техпаспорта; - Отделение регистрации ГАИ. 2. Удалить элемент с указанным номером авто, 3. добавить 2 элемента перед элементом с указанным именем. первое я сделал без проблем а вот во вторым и третьим не разберусь никак
C++ error LNK2001 http://www.cyberforum.ru/cpp-beginners/thread327728.html
беда, совсем беда. день тяжелый, мозг не работает. в общем пример из книжки. непосредственно мейн.цпп //_011.cpp #include <iostream> using std::cout; using std::endl; #include <iomanip>
C++ Что означает строчка ??? Что озночает строчка double *x = new double; Заранее спасибо подробнее

Показать сообщение отдельно
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247

Прокомментируйте, пожалуйста рекурсию - C++

29.06.2011, 19:05. Просмотров 327. Ответов 9
Метки (Все метки)

Нашел в сети код прохождения доски шахм. конем. разобраться не очень получилось, помогите пожалуйста!
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
void chessknight(int k)
{
   c++; 
   if (k==n*n)    print(); 
   if  ((r[n*x[k]+y[k]+2]==false) && (x[k]<=n-1) && (y[k]<=n-2))
   {
      r[n*x[k]+y[k]+2] = true;
      x[k+1] = x[k]+1;
      y[k+1] = y[k]+2;
      chessknight(k+1);
   }
   if  ((r[n*(x[k]+1)+y[k]+1]==false) && (x[k]<=n-2) && (y[k]<=n-1))
   {
      r[n*(x[k]+1)+y[k]+1] = true;
      x[k+1] = x[k]+2;
      y[k+1] = y[k]+1;
      chessknight(k+1);
   }
   if  ((r[n*(x[k]+1)+y[k]-1]==false) && (x[k]<=n-2) && (y[k]>=2))
   {
      r[n*(x[k]+1)+y[k]-1] = true;
      x[k+1] = x[k]+2;
      y[k+1] = y[k]-1;
      chessknight(k+1);
   } 
   if  ((r[n*x[k]+y[k]-2]==false) && (x[k]<=n-1) && (y[k]>=3))
   {
      r[n*x[k]+y[k]-2] = true;
      x[k+1] = x[k]+1;
      y[k+1] = y[k]-2;
      chessknight(k+1);
   }
   if  ((r[n*(x[k]-2)+y[k]-2]==false) && (x[k]>=2) && (y[k]>=3))
   {
      r[n*(x[k]-2)+y[k]-2] = true;
      x[k+1] = x[k]-1;
      y[k+1] = y[k]-2;
      chessknight(k+1);
   }
   if  ((r[n*(x[k]-3)+y[k]-1]==false) && (x[k]>=3) && (y[k]>=2))
   {
      r[n*(x[k]-3)+y[k]-1] = true;
      x[k+1] = x[k]-2;
      y[k+1] = y[k]-1;
      chessknight(k+1);
   }
   if  ((r[n*(x[k]-3)+y[k]+1]==false) && (x[k]>=3) && (y[k]<=n-1))
   {
      r[n*(x[k]-3)+y[k]+1] = true;
      x[k+1] = x[k]-2;
      y[k+1] = y[k]+1;
      chessknight(k+1);
   }
   if  ((r[n*(x[k]-2)+y[k]+2]==false) && (x[k]>=2) && (y[k]<=n-2))
   {
      r[n*(x[k]-2)+y[k]+2] = true;
      x[k+1] = x[k]-1;
      y[k+1] = y[k]+2;
      chessknight(k+1);
   }
   r[n*(x[k]-1)+y[k]] = false;
   x[k] = 1;
   y[k] = 0;
   c++;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru