肿瘤面积

【描述】Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示。其它肿瘤内和肿瘤外的点都用255表示。现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点)。已知肿瘤的边缘平行于图像的边缘。Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输入】Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

只有一个测试样例。第一行有一个整数,表示正方形图像的边长。其后行每行有个整数,取值为0或255。整数之间用一个空格隔开。已知不大于1000。Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输出】Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

输出一行,该行包含一个整数,为要求的肿瘤内的像素点的个数。Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【样例输入】Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

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

【样例输出】Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

1

【提示】Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

如果使用静态数组来表示图片数据,需要将该数组定义成全局变量。Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【参考程序】Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

C++版本Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 Ld6100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. #include <iostream>  
  2.  
  3. using namespace std; 
  4.  
  5. int main()  
  6.     //只需要得到起始位置的点,和最后位置的点,即可算出可容纳几个255 
  7.     int n, arr[1005][1005], ax = 0, ay = 0, bx = 0, by = 0; 
  8.     cin >> n; 
  9.     bool first = true
  10.     for (int i = 1; i <= n; i++)  
  11.     { 
  12.         for (int j = 1; j <= n; j++)  
  13.         { 
  14.             cin >> arr[i][j]; 
  15.             if (arr[i][j] == 0)  
  16.             { 
  17.                 if (first)  
  18.                 { 
  19.                     ax = i; 
  20.                     ay = j; 
  21.                     first = false
  22.                 } 
  23.                 bx = i; 
  24.                 by = j; 
  25.             } 
  26.         } 
  27.     } 
  28.     if (bx > ax && by > ay)  
  29.     { 
  30.         cout << (by - ay - 1) * (bx - ax - 1); 
  31.     } 
  32.     else  
  33.     { 
  34.         cout << 0; 
  35.     } 
  36.     return 0; 

关 键 词

肿瘤面积

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢