Задача 4
Имеется матрица (n*m) заполненная 1 и 0. Единицы - это острова, а нули - море. Если единицы находятся рядом по горизонтали или вертикали - то они образуют один остров. Острова могут быть «гнутыми» и «дырявыми». Найти количество островов.
/*
* File: landcount.cpp
* Author: darkfire
*
* Created on September 24, 2010, 8:45 PM
*/
#include <stdlib.h>
#include <iostream>
using std::endl;
using std::cin;
using std::cout;
const int SIZEX=6, SIZEY=6;
int endrow(int [][SIZEY], int, int);
int main() {
int ar[SIZEX][SIZEY];
int countland = 0;
//заполнение массива ar
for (int x=0;x<SIZEX-1;x++)
{
cout<<"\n";
for (int y=0;y<SIZEY-1;y++){
ar[x][y] = rand()%2;
cout<<ar[x][y]<<"\t";
}
}
cout<<"\n\n";
//поиск островов
for (int x=0;x<SIZEX-1;x++){
cout<<"\n";
for (int y=0;y<SIZEY-1;y++){
if (ar[x][y] ==1){
countland++;
endrow(ar,x,y);
}
}
}
//вывод массива после поиска
cout<<"\n\n";
for (int x=0;x<SIZEX-1;x++){
cout<<"\n";
for (int y=0;y<SIZEY-1;y++){
cout<<ar[x][y]<<"\t";
}
}
cout<<"\n"<<"Kol-vo land: "<<countland<<endl;
return (EXIT_SUCCESS);
}
int endrow(int arrb[][SIZEY], int x, int y)
{
arrb[x][y]=3;//пометили, что часть острова найдена
//исследуем вправо и вниз от помеченной точки, рекурсивно вызывая функцию endrow
if (arrb[x][y+1]==1){
endrow(arrb,x,y+1);
};
if (arrb[x+1][y]==1){
endrow(arrb,x+1,y);
};
}
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга