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

Все разные числа в матрице в первых k ячейках - C++

Восстановить пароль Регистрация
 
Chelovek_ya
0 / 0 / 0
Регистрация: 20.02.2009
Сообщений: 7
09.01.2011, 16:29     Все разные числа в матрице в первых k ячейках #1
Дана матрица, например m[100][100]. Определить в двумерном массиве есть ли хотя бы одна пара одинаковых чисел в первых k ячейках.
То есть если, например, k=102 то мы будет сравнивать числа первой строки и первые два числа второй строки.

Можете даже не компилировать задачу, а набрасать только сам алгоритм, буду очень признателен и поставлю большой +

Вот впринципе мой алгоритм, но у меня где-то ошибка Лучше конешно сначала набрасайте свой, т.к. в моем можете запутаться
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
d=0; n=0;
cin>>k;
    
        for (int x=0; x<100; ++x)
        {
            for (int y=0; y<100; ++y)
            {
                n+=1; n2=0; if (n>k) break;
                for (int x2=0; x2<100; ++x2)
                {
                    for (int y2=0; y2<100; ++y2) 
                    {
                        n2+=1; if (n2>k) break;
                        if (m[x][y]==m[x2][y2]) { if (((x!=x2) || (y!=y2)) || ((x!=x2) & (y!=y2))) { d=1; break; } }
                    }
                    if (d==1) break; if (n2>k) break;
                }
                if (d==1) break; 
            }
            if (d==1) break; if (n>k) break;
        } 
        
cout<<"\n"<<d; cin.ignore();
если есть одинаковые числа то d будет присвоено 1
if (d==1) break; это чтоб если нашел хотя бы одну пару одинаковых чисел - дальше не продолжал
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2011, 16:29     Все разные числа в матрице в первых k ячейках
Посмотрите здесь:

C++ в матрице, строку где все числа четные, расположить в обратном порядке.
Напишите функцию, которая принимает два целых числа n и k и возвращает число, содержащее k первых цифр числа n C++
C++ Найти сумму первых 5 цифр дробной части действительного числа.например для числа 23,1680989 она равна 24.Програма на С++
C++ Дано натуральное число n (n <= 9999). Учитывая все четыре цифры числа, определить, правильно, что оно содержит: все разные цифры
В строку вводится 5,2,8 нужно чтобы все 3 числа попали в массив или разные переменные C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
09.01.2011, 20:43     Все разные числа в матрице в первых k ячейках #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
/*
  Дана матрица, например m[100][100]. Определить в двумерном массиве 
  есть ли хотя бы одна пара одинаковых чисел в первых k ячейках.
*/
#include <cstdio>
#include <ctime>
#include <cstdlib>
 
bool HasSameInRange(int **array, int max_width, int max_elements) {
  for (int i = 0; i < max_elements-1; ++i)
    for (int j = i + 1; j < max_elements; ++j)
      if (array[i / max_width][i % max_width] == 
          array[j / max_width][j % max_width])
        return true;
  return false;
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
 
  int rows = 10 + rand() % 3;
  int cols = 5 + rand() % 3;
 
  int **a_matrix = new int*[rows];
  for (int i = 0; i < rows; ++i) {
    a_matrix[i] = new int[cols];
    for (int j = 0; j < cols; ++j) {
      a_matrix[i][j] = rand() % 100;
      printf("%d ", a_matrix[i][j]);
    }
    printf("\n");
  }
 
  printf("%s", (HasSameInRange(a_matrix, cols, cols + rand() % cols)) ? "Yes, it does." : "No, it does not.");
 
  for (int i = 0; i < rows; ++i)
    delete a_matrix[i];
  delete [] a_matrix;
  
  int key;
  scanf("%d", &key);
  return 0;
}
Chelovek_ya
0 / 0 / 0
Регистрация: 20.02.2009
Сообщений: 7
10.01.2011, 12:07  [ТС]     Все разные числа в матрице в первых k ячейках #3
Какая переменная определяет до какой ячейки сравнивать?
А так спасибо большое, как тыркнуть +?))
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
10.01.2011, 12:57     Все разные числа в матрице в первых k ячейках #4
Chelovek_ya, кнопка "Спасибо" под сообщением
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
10.01.2011, 15:30     Все разные числа в матрице в первых k ячейках #5
Цитата Сообщение от Chelovek_ya Посмотреть сообщение
Какая переменная определяет до какой ячейки сравнивать?
Второй параметр функции HasSameInRange.
Yandex
Объявления
10.01.2011, 15:30     Все разные числа в матрице в первых k ячейках
Ответ Создать тему
Опции темы

Текущее время: 20:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru