题目描述
在n*n的方格棋盘上,有一些格子里有棋子。如果一个棋子的上、下、左、右、左上、左下、右上、右下没有其它棋子,就称是孤立的,问棋盘上有多少孤立的棋子?
输入格式
第一行1个正整数:N,范围在[1,20]。
下面有N行,每行N个整数,要么是0,要么是1。0表示没有棋子,1表示有棋子。
输出格式
一个整数。
输入/输出例子1
输入:
4
1 0 1 0
0 0 1 0
0 1 0 1
0 0 0 0
输出:
1
具体代码
#include<bits/stdc++.h>
using namespace std;
int n,a[22][22],k,L;
int search_for(int x,int y)
{
return a[x+1][y]+a[x-1][y]+a[x][y+1]+a[x][y-1] \
+a[x+1][y+1]+a[x-1][y-1]+a[x-1][y+1]+a[x+1][y-1];
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(a[i][j]&&!search_for(i,j))L++;
}
}
cout<<L;
return 0;
}