描述
小明的侄子要过生日了,小明买了一套儿童积木送他。这套积木由N个边长为1厘米的正方体小块组成,小明想把这些小块堆成一个大的矩形方体,然后将整个方体包裹上漂亮的包装纸,请问小明最少需要多少平方厘米的包装纸即可?
输入
输入的第一行为一个正整数C,表示测试样例的组数。
每组输入是一个正整数N(1<=N<=1000),表示积木块的个数。
输出
对于每组输入,输出将整个方体完全包裹上包装纸所需要的包装纸的最小面积。
输出样例:
5
9
10
26
27
100
输出样例:
30
34
82
54
130
先定义一个很大的数minx,再通过循环遍历得出该方体的长宽高,计算出面积area与minx相比较,把最小的数赋予给minx,直到循环结束,得到的minx就是最小面积
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,j,m,n,k,area,minx;
cin>>n;
while(n--)
{
cin>>m;
minx=10000000;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=m;j++)
{
if(m%(i*j)==0)
{
k=m/(i*j);
area=2*(i*j+i*k+j*k);
if(area<minx)
minx=area;
}
}
}
cout<<minx<<endl;
}
return 0;
}