Minecraft——枚举(计蒜客)

题目链接
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;
}

发布了67 篇原创文章 · 获赞 2 · 访问量 1842

猜你喜欢

转载自blog.csdn.net/weixin_44641254/article/details/104223193