【openjudge】Minecraft

57 篇文章 0 订阅

【openjudge】Minecraft

描述

Minecraft是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界。

在Minecraft中,基本的建筑元素是边长为1个单位的立方体,Tony想用N个这种小立方体搭建一个长方体,并用他珍藏已久的贴纸对其进行装饰。如果一张贴纸可以贴满小立方体的一个面。那么,他需要用掉多少张贴纸呢?

输入
输入的第一行是测试样例的数目C。剩下的C行,每行有一个整数N,表示小明所拥有的小立方体的个数。N不会超过1000。
输出
你需要输出每个测试样例中,小明最少用掉的贴纸有多少张。
样例输入
5
9
10
26
27
100
样例输出
30
34
82
54
130
【解题思路】

枚举棱长

【代码】

#include<iostream>
#include<cstring>
#include<cstdio>
#define inf 2100000000
using namespace std;
int c,n,ans,sum,k;
int main(){
	scanf("%d",&c);
	for (int t=1;t<=c;++t){
		scanf("%d",&n);
		ans=inf;
		for (int i=1;i<=n;++i)
		  if (n%i==0)
		    for (int j=1;j<=n/i;++j)
		      if (n%(i*j)==0){
		      	k=n/(i*j);
		      	sum=2*(i*j+j*k+k*i);
		      	if (sum<ans) ans=sum;
		      }
		printf("%d\n",ans);
	}
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值