2020 360校招 求立方体表面积


将长为n*m的矩形划分为n行m列(每行列宽度均为1),在第i行j列 A(i,j)位置上放边长为1的正方体( 1<=A(i,j)<=100),所有正方体组成一个立方体。

  1. 每个正方体的六个面中的一部分会被其他部分正方体遮挡,未被遮挡的部分总面积即为该立方体的表面积,求表面积大小?
  2. 输入:
  3. 第一行两个正整数 N 和M, 1<= n, M<= 1000;
  4. 输出:
  5. 表面积大小
  6. 示例输入:
  7. 2 2
    2 1
    1 1
    输出: 20
原理是单独计算每一层的表面积,再求和
推导过程是:
1.
总表面积 = 第一层表面积 + 第二层 + ......+顶层表面积
2.
第一层表面积 = 四周所占面积(2*(m+n))+上下所占面积(2*m*n - 第二层正方体个数)
第二层表面积 = 四周所占面积(第二层周长) + 上下所占面积(第二层个数 - 第三层个数)
第三层表面积 = 四周所占面积(第三层周长) + 上下所占面积(第三层个数 - 第四层个数)
依次后推。。。
顶层面积 =  四周所占面积(顶层周长) + 上下所占面积(顶层个数)
3.
将2中推导过程相加,上下面积全部相互抵消,得到结果
总表面积  = 2*(m+n)+2*m*n + 第二层周长 + 第三层周长 + ......+顶层周长

### 实现代码
public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int[][]  arr = new int[n][m];for(int i=0 ; i< n; i++){for(int j=0 ;j<m; j++){arr[i][j] = sc.nextInt();}}int[][] temp = new int[n][m];//int num=0;int sum = 0;boolean sign = true;while(sign){for(int i=0 ; i< n; i++){for(int j=0 ;j<m; j++){arr[i][j] = arr[i][j]-1 > 0 ? arr[i][j]-1:0;//sum += temp[i][j];temp[i][j] = arr[i][j] > 0 ? 1:0;//用来计算每一层的周长//if(arr[i][j] > 0){ num++;}//每一层个数}}sum += islandPerimeter(temp);//计算每一层周长if(islandPerimeter(temp) == 0){sign =false;}//最后一层,停止循环}System.out.println(2*(m+n)+2*m*n+sum);}// 计算每一层周长public static int islandPerimeter(int[][] grid) {//System.out.println("dd");int count = 0;for(int i = 0;i<grid.length;i++){for(int j = 0;j<grid[i].length;j++){if(grid[i][j] == 1){if(i - 1 < 0 || grid[i - 1][j] == 0){count ++;}if(i + 1 >= grid.length || grid[i+1][j] == 0){count ++;}if(j -1 <0 || grid[i][j - 1] == 0){count ++;}if(j + 1 >= grid[i].length ||  grid[i][j + 1] == 0){count ++;}}}}return count;}

测试结果

360校招 求立方体表面积相关推荐

  1. java用接口求立方体表面积_用JAVA如何画正方体 长方体

    下载一个官方3D插件: JAVA 3D API 最新j3d-1_5_2-windows-i586.exe https://java3d.dev. 安装成功就可以运行以下程序 // JFrame imp ...

  2. 9.25 360校招面试题总结? 自己面试 c++后端开发,服务器方向,探索部门。

    2018.9.25 360校招面试题总结?   自己面试  c++后端开发,服务器方向,探索部门. 1上来问智力题       5L和6L的杯子量出3L的水,如何量? 一.下面开始问c++的基础的东西 ...

  3. 360 c语言 笔试,奇虎360校招的笔试真题

    选择题有45个? 好像是,三道简答题, 简答题: 1.设计一个课程表(包括目标人群.核心功能.特色设计); 2.说ATM的缺点,改进方法; 3.如何让李开复等互联网大牌关注你的微薄? 选择题记得不是很 ...

  4. C++语言——求圆柱表面积

    时间限制: 1 Sec  内存限制: 128 MB 题目描述 已知图圆柱体的高为h,底面圆的半径为r,求圆柱体表面积.(h,r都为正整数,表面积保留两位小数) 输入 一行,两个正整数用空格隔开,分别表 ...

  5. C语言 初级 -输入圆柱半径与高求其表面积

    /**copyright(c)2018,CSDN学院*All rights reserved.*文件名称:main.c*作 者:杨梦豪*完成日期:2018年5月9日*版 本 号:v1.0**问题描述: ...

  6. JavaScript实现求长方体表面积与体积

    JavaScript实现求长方体表面积与体积 一.思路 1.首先,长方体的长.宽.高是输入的,所以先获取在输入区输入的长宽高的值,赋值给定义的新的变量来储存获取的值: 2.将变量进行相应的运算,赋值给 ...

  7. Java实现 蓝桥杯VIP 算法提高 3-3求圆面积表面积体积

    算法提高 3-3求圆面积表面积体积 时间限制:1.0s 内存限制:256.0MB 问题描述 接受用户输⼊的数值,输出以该值为半径的(1)圆面积,(2)球体表面积,(3)球体体积.pi 取值3.1415 ...

  8. 练习-Java类和对象之对象组合之求圆锥体表面积

    ** 任务:已知圆锥的母线为 15,底面半径为 8,求圆锥的表面积. */ // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码 /********** Begin ******* ...

  9. java编一个求圆柱表面积_Java:输入圆柱体的半径和高,计算并输出圆柱体的体积和表面积...

    展开全部 程序如下: package test; import java.util.Scanner; public class TestCircle { public static void main ...

  10. python求圆柱表面积_ZZULIOJ.1011: 圆柱体表面积 —— 1021:三个整数的最大值(C语言 Vs Python)...

    目录 1011: 圆柱体表面积 1012: 求绝对值 1013: 求两点间距离 1014: 求三角形的面积 1015: 计算时间间隔 1016: 银行利率 1017: 判断正整数位数 1018: 奇数 ...

最新文章

  1. 巧用Windows 7命令,修复系统故障!
  2. android log时间,android – Logcat的日志时间戳不按顺序排列
  3. 如何正确访问Redis中的海量数据?服务才不会挂掉!
  4. java服务器崩溃的原因_请求大神帮忙分析一下服务器崩溃原因
  5. C/C++劫持技术(函数劫持、dll注入、动态库注入、HOOK)
  6. PicPick手册:绿色小巧功能多的截屏软件
  7. 面试必考题:基本95%的面试都会被问到的?
  8. 写爬虫时遇到的问题及解决方法
  9. Vs2012使用strcpy出错之解决方法
  10. android 自定义组件 属性值,自定义组件之自定义属性
  11. 某班30名同学成绩c语言,.编程实现:求某班30个同学的所有成绩,并统计出其平均分,最高分和最低分。...
  12. python线性回归预测pm2.5_线性回归预测PM2.5----台大李宏毅机器学习作业1(HW1)
  13. 冰峰王座完整的语音英文+中文解释!(修订版)
  14. opencv python教程简书_OpenCV-Python教程:57.图像修复
  15. 阿里移动11.11 | Weex 在双十一会场的大规模应用
  16. 系统移植(系统移植环境搭建及简单概念)
  17. 【前端】报错TypeError: Cannot create property ‘xxx‘ on string ‘xxx‘
  18. mac彻底卸载idea
  19. python骨灰教学_10招!看骨灰级Pythoner玩转Python的方法
  20. spring-cloud-stream通道多线程并发消费

热门文章

  1. html 重力感应效果,HTML5 重力感应效果,实现摇一摇效果
  2. 华硕 小布 类似机器人_“嗨 小布跟着我” | 华硕首款智能机器人“小布”正式发布...
  3. 程序员除了去上班还能怎样赚钱?
  4. 2021国赛新大陆物联网Ubuntu系统维护(中职)
  5. 推荐一个免费的论文查重检测软件PaperRight
  6. DB2JAVIT RC 9505
  7. va_list、va_start和va_end实现
  8. Zoomit的简单使用
  9. wtg linux双系统,Windows和Linux同时装入移动硬盘,实现可移动专属双系统
  10. 信安知识竞赛培训笔记