求面积
/*根据题目要求没有干扰的1 所以只要扫到0就把他变成1 当扫到1的时候就停止 */ #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cstring> using namespace std; int a[11][11]; void mdzz(int x,int y) { if(x<1||y<1||y>10||x>10||a[x][y]==1); else { a[x][y]=1; mdzz(x+1,y); mdzz(x-1,y); mdzz(x,y+1); mdzz(x,y-1); } return; } int main() { int tot=0; for(int i=1;i<=10;i++) for(int j=10;j>=1;j--) { scanf("%d",&a[i][j]); } mdzz(1,1); mdzz(1,10); mdzz(10,1); mdzz(10,10); for(int i=1;i<=10;i++) for(int j=10;j>=1;j--) { if(a[i][j]==0)tot++; } cout<<tot; return 0; }
1、编程计算由“*”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示,在10*10的二维数组中,有“*”围住了15个点,因此面积为15。
【样例输入】area.in
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 0 1 0
0 1 0 1 0 1 0 0 1 0
0 1 0 0 1 1 0 1 1 0
0 0 1 0 0 0 0 1 0 0
0 0 0 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 0
【样例输出】area.out
15