Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по поиску соседей 
:(
    Опции темы
Binjospookie
  Дата 11.11.2013, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 11.11.2013

Репутация: нет
Всего: нет



Есть массив a[i][j]. Он выводится в виде:
10111
10110
11101
01011
11010

Необходимо узнать сколько для каждого элемента (клетки) существует соседних клеток, отвечающих условию N.
При этом не должно быть много кода:(
Как это сделать,а?
PM MAIL   Вверх
Magistrus
Дата 12.11.2013, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Жив
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 14.6.2006
Где: г. Одесса

Репутация: нет
Всего: 1



Как то так. Код еще можно немного сократить объеденив граничные условия.
Код


public class Neighborhood
{
    public final static int N = 2;
    
    public static void main(String[] args)
    {
        int [][] array  = new int[][]
           {{1,0,1,1,1},
            {1,0,1,1,0},
            {1,1,1,0,1},
            {0,1,0,1,1},
            {1,1,0,1,0}};
        int tableSize = 4;
        for (int i=0; i < tableSize; i++)
        {
            for (int j=0; j < tableSize; j++)
            {
                int neighborhoodCount = 0; 
                if (i>0 && array[i-1][j]==1)
                {
                    neighborhoodCount++;
                }
                if (i<tableSize && array[i+1][j]==1)
                {
                    neighborhoodCount++;
                }
                if (j>0 && array[i][j-1]==1)
                {
                    neighborhoodCount++;
                }
                if (j<tableSize && array[i][j+1]==1)
                {
                    neighborhoodCount++;
                }
                if (i>0 && j>0 && array[i-1][j-1]==1)
                {
                    neighborhoodCount++;
                }
                if (i<tableSize && j>0 && array[i+1][j-1]==1)
                {
                    neighborhoodCount++;
                }
                if (i>0 && j<tableSize && array[i-1][j+1]==1)
                {
                    neighborhoodCount++;
                }
                if (i<tableSize && j<tableSize && array[i+1][j+1]==1)
                {
                    neighborhoodCount++;
                }
                if (neighborhoodCount == N)
                {
                    System.out.println(String.format("i=%d j=%d", i,j));
                }
                System.out.println(String.format("[%d][%d] %d", i,j, neighborhoodCount)); 
            }
        }
    }
}


--------------------
~ вот такая вот загагулина ~ 
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0844 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.