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

Задача о симпатичных таблицах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сформировать массив С на основе массивов А и В http://www.cyberforum.ru/cpp-beginners/thread1080700.html
1) Сформировать массив С на основе массивов А и В. Компоненты массива С характеризуют частоту встречаемости элементов bi (i=1, 2, 3, ...n) в массиве А.
C++ Отсортировать массив по убыванию, затем добавить недостающий элемент и отсортировать массив по возрастанию 2) В массиве a ...a встречаются по одному разу все целые числа от 0 до n, кроме одного. За n действий найти пропущенное число с конечной дополнительной памятью. Отсортировать массив по убыванию, затем добавить недостающий элемент и отсортировать массив по возрастанию. http://www.cyberforum.ru/cpp-beginners/thread1080697.html
C++ Найти C(n,k). C(n,k) = (n!/(n-k)!*k!)
2015 год… В Астане проходит IOI 2015! Сильнейшая участник с Казахстана, Нурба решил 5 задач из 6! И он не может решить последнюю задачу. Он очень устал после первых 2-х часов контеста. Так как он у себя на родине, он вышел в туалет и послал SMS Санчо за помощью. Так как у него есть совесть, он попросил решить только подзадачу последней задачи. Подзадача была найти C(n,k). C(n,k) = (n!/(n-k)!*k!)....
Двумерный массив. Найти минимальный и поменять его с первым, найти максимальный и поменять его с последним C++
Как можно изменить код чтобы выполнялось. 1.Найти минимальный элемент и поменять его с первым элементом. 2.Найти максимальный элемент и поменять его с последним элементом. #include "stdafx.h" #include <iostream> #include <iomanip> #include <conio.h> #include <stdio.h>
C++ Определите, является ли число степенью числа 2, и если является, то выведите значение этой степени http://www.cyberforum.ru/cpp-beginners/thread1080672.html
Дано натуральное число n. Определите, является ли оно степенью числа 2, и если является, то выведите значение этой степени / С++ для начинающих
C++ Обнулить элементы матрицы стоящие после максимального элемента Здравствуйте! Помогите пожалуйста обнулить элементы матрицы стоящие после максимального элемента и выполнить сортировку элементов стоящих до максимального по возрастанию. #include <iostream> #include <conio.h> #include <ctime> #include <iomanip> using namespace std; int main() подробнее

Показать сообщение отдельно
Nnakhze
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 3
24.01.2014, 20:47     Задача о симпатичных таблицах
Доброго времени суток.
Прошу помочь с задачей, суть:

Есть таблица N*N, определить, является ли она симпатичной. Симпатичная таблица - та, в которой нет квадратов 2*2, заполненных либо только 0, либо только 1, например
0 0
0 0
или
1 1
1 1.
Входные данные - размер таблицы N.
Выходные данные - YES, если таблица является симпатичной, NO - если не является.

Вот что у меня вышло,
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
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
int main()
{
  srand(time(NULL));
  int i = 0, j = 0, n, k = 0;
  int array[n][n];
  cin >> n;
  for (;i<=n-1;i++) { // заполнение таблицы и отображение
    for (j = 0;j<=n-1;j++)
     {
        array[i][j] = rand() % 2;
        cout << array[i][j] << " ";
      }
    cout << endl;
    }
 
 
for(i = 0;i<=n-2;i++)
  {
  for (j = 0;j<=n-2;j++) 
    {
      if ((array[i][j]==0) && (array[i][j+1]==0) && (array[i+1][j]==0) && (array[i+1][j+1]==0)) // проверка на квадраты с 0
    {
 
                     k = k + 1; // подсчет количества симпатичных таблиц
                     cout << "This quadr :" << endl;
                     cout << array[i][j] << " " << array[i][j+1] << endl;
                     cout << array[i+1][j] << " " << array[i+1][j+1] << endl;
                     cout << "..and i[" << i << "] , j [" << j << "] " << endl;
 
               }
      else continue;
 
 
    }
 }
 
for(i = 0;i<=n-2;i++)
  {
  for (j = 0;j<=n-2;j++)
    {
      if ((array[i][j]==1) && (array[i][j+1]==1) && (array[i+1][j]==1) && (array[i+1][j+1]==1))  // проверка на квадраты с 1
        {
 
 
                     k = k + 1; // подсчет количества симпатичных таблиц
                     cout << "This quadr :" << endl;
                     cout << array[i][j] << " " << array[i][j+1] << endl;
                     cout << array[i+1][j] << " " << array[i+1][j+1] << endl;
                     cout << "..and i[" << i << "] , j [" << j << "] " << endl;
 
 
 
        }
     
    }
 }
 
 
if (k > 0)
  {
  cout << "NO";
  }
else
  {
    if ( k == 0)
 
    {
      cout << "YES";
    }
  }
  return 0;
}
Заполнение происходит нормально, а проверка на квадраты как-то криво, не могу понять в чем причина, не находит эти самые квадраты, а порой находит не существующие.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru