题目链接:https://nanti.jisuanke.com/t/T1200
解题思路:因为立方体的长为1,所以体积为1,所以n个立方体组成的长方体的体积就为n。假设从1开始,枚举每一个长和宽。如果n%(l*w)则证明可以构成长方体,再求高。然后再求这个长方体的面数。不断比较面数,输出面数最少的那一个即可。
#include<iostream>
using namespace std;
int main(){
int n,l,w,h,min=100000,now;
cin>>n;
if(n==1){
cout<<"6";
}else if(n>=2){
for(l=1;l<=n;l++){
for(w=1;w<=n;w++){
//如果可以构成长方体
if(n%(l*w)==0){
//利用面积求出高h因为立方体的体积积为1,所以n个立方体构成的长方体的体积为n
h = n/(l*w);
//求出一共有多少面
now = l*w*2 + l*h*2 + w*h*2;
//不断记录最小的面数
if(now<min){
min = now;
}
}
}
}
cout<<min;
}
return 0;
}