肿瘤面积(c++题解)

发布时间:2024年01月21日

题目描述

在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示。其它肿瘤内和肿瘤外的点都用255表示。现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点)。已知肿瘤的边缘平行于图像的边缘。

输入格式

只有一个测试样例。第一行有一个整数n,表示正方形图像的边长。其后n行每行有n个整数,取值为0或255。整数之间用一个空格隔开。已知n不大于1000。

输出格式

输出一行,该行包含一个整数,为要求的肿瘤内的像素点的个数。

样例

样例输入
复制5
255 255 255 255 255
255 0 0 0 255
255 0 255 0 255
255 0 0 0 255
255 255 255 255 255
样例输出
复制1_______________________________________________________________________________________

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
摸鱼的一天,前面期末考试没时间跟新见谅~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_______________________________________________________________________________________
#include <bits/stdc++.h>
using namespace std;
int n;
int a[10005][10005],x,y,p,q,first=1;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
		    cin>>a[i][j];
		    if(a[i][j]<first){//求第一个0的坐标。
		    	first=0;
		    	x=i,y=j;
			}
			if(a[i][j]==0){//求最后一个0的坐标。
				p=i,q=j;
			}
	    }
	}
	cout<<(p-x-1)*(q-y-1);//由于题目说是矩形所以直接用坐标求出长宽。
}

文章来源:https://blog.csdn.net/hb_zhyu/article/details/135728302
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。