计蒜客 T1200 Minecraft

题目链接: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;
	
}
发布了61 篇原创文章 · 获赞 35 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41575507/article/details/104547320