题目链接
Minecraft 是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界。
在 Minecraft 中,基本的建筑元素是边长为 1 个单位的立方体,小蒜想用 N 个这种小立方体搭建一个长方体,并用他珍藏已久的贴纸对其进行装饰。如果一张贴纸可以贴满小立方体的一个面。那么,他需要用掉多少张贴纸呢?
输入格式
一个整数 N,表示小明所拥有的小立方体的个数。N 不会超过 10001000。
输出格式
一个整数,即小明最少用掉的贴纸有多少张。
输出时每行末尾的多余空格,不影响答案正确性
样例输入
9
样例输出
30
题意思路:虽然不知道长宽高为多少的长方体面积最小,但是确定了长宽,高也就确定了。然后我们再枚举比较,找到面积最小的长方体。
代码:
#include <stdio.h>
#include <algorithm>
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <cmath>
#define inf 0x3f3f3f3f
using namespace std;
int n,i,j;
int main()
{
cin>>n;
int minn,h,s;
minn=inf;
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
if(n%(i*j)==0)
{
h=n/(i*j);
s=2*i*j+2*i*h+2*j*h;
if(s<minn)
minn=s;
}
}
}
cout<<minn;
return 0;
}