• 面积(area)


    面积(area)

    【题目】

    编程计算由“*”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示,在10*10的二维数组中,有“*”围住了15个点,因此面积为15。
     (1就相当于*)

    【样例输入】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

    【代码】

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstdlib>
     4 #include<cstring>
     5 #include<string>
     6 #include<cmath>
     7 #include<algorithm>
     8 
     9 using namespace std;
    10 
    11 int z[101][101];
    12 
    13 int main() {
    14     int i,j,k=0;//用k保存个数
    15     for(i=1; i<=10; i++)
    16         for(j=1; j<=10; j++)
    17             scanf("%d",&z[i][j]);
    18     for(i=1; i<=10; i++) { //将边界都赋值为2
    19         for(j=1; j<=10; j++) {
    20             if((i==1||i==10)&&z[i][j]==0) z[i][j]=2;
    21             if((j==1||j==10)&&z[i][j]==0) z[i][j]=2;
    22         }
    23     }
    24     for(i=1; i<=10; i++)
    25         for(j=1; j<=10; j++)
    26             if(z[i][j]==0&&(z[i][j+1]==2||z[i][j-1]==2||z[i-1][j]==2||z[i+1][j]==2))//如果为零,并且它的上下左右之中有一个为2,则将它赋值为2
    27                 z[i][j]=2;
    28     for(i=1; i<=10; i++)
    29         for(j=1; j<=10; j++)
    30             if(z[i][j]==0)//统计剩余0的个数
    31                 k++;
    32     printf("%d",k);//输出0的个数,即为其面积
    33     return 0;
    34 }

    如果运气好也是错,那我倒愿意错上加错!

    ❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

  • 相关阅读:
    Jenkins发布.net core程序
    CentOS7部署Jenkins
    ASP.NET Core 中的响应缓存中间件
    浏览器缓存
    WEB缓存
    Jmeter常用插件——梯度加压、响应时间、TPS
    Jmeter压测报错:Non HTTP response code: java.net.ConnectExceptionexception的解决办法
    Linux如何安装rpm文件
    Prometheu---配置文件修改
    Grafana介绍---prometheus系列
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/6636452.html
Copyright © 2020-2023  润新知