題目鏈接: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;
}