7216:Minecraft题解
来源:互联网 发布:java前端面试 编辑:程序博客网 时间:2024/04/20 06:56
7216:Minecraft
总时间限制:
1000ms
内存限制:
65536kB
描述
Minecraft是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界。
在Minecraft中,基本的建筑元素是边长为1个单位的立方体,Tony想用N个这种小立方体搭建一个长方体,并用他珍藏已久的贴纸对其进行装饰。如果一张贴纸可以贴满小立方体的一个面。那么,他需要用掉多少张贴纸呢?
输入
一个整数N,表示小明所拥有的小立方体的个数。N不会超过1000。
输出
一个整数,即小明最少用掉的贴纸有多少张。
样例输入
9
样例输出
30
题解:
由题可知:
1.此题应当使用枚举算法;
2.此题需要用到长方形表面积公式
3.由此我们就可以求出表面积为M;
4.根据上面的内容,我们就可以知道应该用双重循环来确定长方体的长a、宽b;
5.又因为,输入时我们输入了边长为1的立方体的个数,所以呢我们就可以求出长方体的边高为c;
6.因为a、b俩数有可能并不是互质数,所以我们就需要一个变量x来储存a、b两数的乘积;
7.但是,我们会发现用上述方法时宽c会出现非整数,这时我们就可以用continue;函数直接跳过这次循环,即:
if(x!=0)
continue;
8.当然有时X候有可能超过了n这是,我们就需跳出循环,即:
if(x>n)
break;
9.最后呢我们就可以用变量min来储存最小的M;
10.但是min需要设置一个初始值即最大值为4002,
11.最后,我们就可以输出min了。
函数如下:
#include<cstdio>
int main()
{
int n,a,b,c,m,min=4002,x;
scanf("%d",&n);
for(a=1;a<=n;a++)
{
for(b=1;b<=n;b++)
{
x=a*b;
if(n%x!=0)
continue;
if(x>n)
break;
c=n/a/b;
m=a*c*2+a*b*2+b*c*2;
if(m<min)
min=m;
}
}
printf("%d",min);
}
- 7216:Minecraft题解
- Minecraft题解
- Minecraft
- Minecraft
- OpenJudge_P7216 Minecraft
- 【openjudge】Minecraft
- Minecraft poj
- NBUT Minecraft Server Bug
- MineCraft作弊图
- Pool in minecraft
- Clarke and minecraft
- HDU_5463 Clarke and minecraft
- 搭建MineCraft私服
- Minecraft 搭建 Server
- [BZOJ3845] ZCC loves Minecraft
- minecraft生存指南
- Minecraft世界生成器代码
- Minecraft 服务器搭建
- hdoj--1258--Sum It Up(dfs)
- java学习心得——添加列表查询功能
- 【MinaFile】【十三】【2.0】关于粘包的处理
- 论__HashCode和内容Length做快速去重有多不靠谱
- POJ3641 快速幂
- 7216:Minecraft题解
- hdoj 2680 Choose the best route【最短路 dijkstra && SPFA】
- [Python for data Analysis]Python Basic
- Android Studio2.0 Beta 2版本更新说明及注意事项
- 修改Eclipse与MyEclipse的代码提示功能+取消空格上屏
- shell grep常用选项
- 数据结构之单向链表
- 改变命运就像烧火,只要你烧火,就会有热量。只要你专
- 【slighttpd】基于lighttpd架构的Server项目实战(8)—状态机机制回顾