#P1356. 课程ZD.孤立的棋子.填空题
课程ZD.孤立的棋子.填空题
题目描述
在 n×n 的方格棋盘上,有一些格子里有棋子。如果一个棋子的上下左右没有其它棋子,就称是孤立的,问棋盘上有多少孤立的棋子?
输入格式
第一行 1 个正整数:N ,范围在 [1,20]。
下面有 N 行,每行 N 个整数,要么是 0 ,要么是 1 。0 表示没有棋子,1 表示有棋子。
输出格式
一个整数。
样例
4
0 0 1 0
1 0 1 0
0 1 0 1
0 0 0 0
3
程序填空
#include<bits/stdc++.h>
using namespace std;
int a[22][22],n;
int diff[4][2] = {{-1,0},{1,0},{0,-1},{0,1}};
int main()
{
scanf("%d",&n);
int i,j,k,ans=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
int ii,jj;
bool ok;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(a[i][j]==0) //说明了这个位置没有棋子
填空(1);
ok = true;
for(k=填空(2);k<填空(3);k++) //看看4个方向是否有棋子
{
ii = i + diff[k][0];
jj = 填空(4) + 填空(5);
if(a[ii][jj]==1) //有棋子
{
ok = 填空(6);
break;
}
}
if(填空(7))
ans++;
}
}
printf("%d",ans);
return 0;
}
填空(1):{{ input(1) }}
填空(2):{{ input(2) }}
填空(3):{{ input(3) }}
填空(4):{{ input(4) }}
填空(5):{{ input(5) }}
填空(6):{{ input(6) }}
填空(7):{{ input(7) }}