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

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

Войти
Регистрация
Восстановить пароль
 
AHDREY
2 / 2 / 1
Регистрация: 03.11.2013
Сообщений: 26
#1

Матрица, рекурсия - C++

19.11.2013, 19:32. Просмотров 462. Ответов 6
Метки нет (Все метки)

Есть матрица 5х5. Состоит из 24-х нулей и одной единицы. Центр матрицы это элемент, позиция которого заходится в "координате" 3х3 (слева направо, сверху вниз, при условии, что матрица нумеруется с единицы). Необходимо подсчитать минимальное кол-во ходов, необходимых для того, чтобы единица(которая единственная в матрице) оказалась в центре матрицы. Единица может перемещаться за один ход только: (на один элемент) влево, вправо, вверх, вниз (в любом порядке, т. е. может за три хода переместиться, например, влево, вверх, вверх). Считаю что тут нужно использовать рекурсию, буду признателен любой помощи.
Пример:
[вводим]:
0 0 0 0 0
0 0 0 0 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
[выводим]:
3
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2013, 19:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Матрица, рекурсия (C++):

дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим - C++
помогите пожалуйста. условие: дана квадратичная матрица z. составить программу, которая если матрица симметричная(транспонированная...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include&lt;conio.h&gt; void main() { int mas; int N; int max_element; int...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;stdlib.h&gt; int main(int argc, char* argv) { srand(time(NULL)); int mas; ...

Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор: (A=E)b, где E единичная матрица порядка n - C++
Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор: (A=E)b, где E-единичная матрица порядка n. Помогите...

Рекурсия - C++
Привет, помогите пожалуйста надо вычислить рекурсивную функцию : (x+a(x+(a-1)(x+(a-2)(x+...2(x+1)^2)^2)^2)^2)^2. Помогите пожалуйста ,...

Рекурсия - C++
Разработать рекурсивную функцию не возврашающую значений: Дано натуральное четное число n. Разработать функцию для вывода на экран...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SatanaXIII
Супер-модератор
Эксперт С++
5609 / 2643 / 244
Регистрация: 01.11.2011
Сообщений: 6,502
Завершенные тесты: 1
19.11.2013, 19:43 #2
Как на счет вот такого:
C++
1
2
3
4
5
6
int i, j;
for( i=0; i<5; i++ )
  for( j=0; j<5; j++ )
    if( matrix[i][j] ) break;
 
cout << abs( i-3 ) + abs( j-3 );
AHDREY
2 / 2 / 1
Регистрация: 03.11.2013
Сообщений: 26
19.11.2013, 20:36  [ТС] #3
А что за функция "matrix" и к какой библиотеке(#include <...>) она относится?
Supernatural
287 / 143 / 28
Регистрация: 22.11.2010
Сообщений: 1,499
19.11.2013, 20:37 #4
Цитата Сообщение от AHDREY Посмотреть сообщение
А что за функция "matrix" и к какой библиотеке(#include <...>) она относится?
подразумевается matrix - твоя матрица
C++
1
int matrix[5][5]
AHDREY
2 / 2 / 1
Регистрация: 03.11.2013
Сообщений: 26
19.11.2013, 21:04  [ТС] #5
Спасибо всем за ответы, но я не совсем понимаю что данный код делает? Вроде как он не считает того, чего мне нужно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int a[6][6];
 
int main()
{
    int i, j;
 
for(i = 0; i < 5; i++)
    for(j = 0; j < 5; j++)
        cin >> a[i][j];
for( i=0; i<5; i++ )
  for( j=0; j<5; j++ )
    if( a[i][j] ) break;
 
cout << abs( i-3 ) + abs( j-3 ) << endl;
 
system("PAUSE");
return 0;
}
SatanaXIII
Супер-модератор
Эксперт С++
5609 / 2643 / 244
Регистрация: 01.11.2011
Сообщений: 6,502
Завершенные тесты: 1
19.11.2013, 21:17 #6
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
#include <iostream>
#include <cmath>
using namespace std;
 
const int n = 5; 
int a[n][n] = { {0, 0, 0, 0, 0},
                {0, 0, 0, 0, 1},
                {0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0} };
 
int main()
{
    int i, j;
 
/*for(i = 0; i < n; i++)
    for(j = 0; j < n; j++)
        cin >> a[i][j];*/
 
bool flag = false;        
for( i=0; i<n && !flag; i++ )
  for( j=0; j<n && !flag; j++ )
    if( a[i][j] ) flag = true;
 
if( flag ) 
  cout << abs( i-n/2 ) + abs( j-n/2 ) << endl;
else
  cout << "none";
 
cin.ignore();
return 0;
}
AHDREY
2 / 2 / 1
Регистрация: 03.11.2013
Сообщений: 26
19.11.2013, 22:09  [ТС] #7
Программа работает не совсем корректно.
Например при вводе такой матрицы:
1 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Она выдала мне ответ 2, в то время как должна выдать ответ 4.

Добавлено через 34 минуты
Всем кто пытался помочь спасибо, решил сам =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2013, 22:09
Привет! Вот еще темы с ответами:

РЕкурсия - C++
Мне нужно 5 задач по рекурсии с решениями,)))есмли не сложно-помогите, может ссылочку куда или что-нибудь)))заранее благодарен

рекурсия в С++ - C++
Изучаю использование рекурсивной функции в С++. Правильно ли я понял: - что нет ограничений в max depth вызова рекурсии которые функция...

Рекурсия - C++
Помогите, пожалуйста, с рекурсией. Дана квадратная матрица A порядка m, натуральное число n, действительные числа pn, pn-1, p0. Найти...

Рекурсия - C++
Помогите пожалуйста как это можно написать. Y=(2*n+1)!!*(2*m+1)!!/(2*(m+n)+1)!!,где m,n неотрицательные целые числа.Для определения...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.11.2013, 22:09
Ответ Создать тему
Опции темы

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