题目描述
viias想要送给她一些魔方做礼物,现在它有n个魔方,需要拼成一个大长方体包装起来送给她。
为了保证长方体协调,viias想要长方体的表面积面积尽量小。
所以最小表面积是多少呢?
输入
每行一个整数n,代表魔方数,由于viias的生活费限制,0<n<111.
输出
每组数据输出一行,表示需要的包装纸数(立方体魔方,以魔方单面表面积为单位1)。
样例输入
1
4
8
样例输出
6
16
24
提示
多组测试数据时需要读到文件尾
读懂题目的话可以发现数学语言的题目是:
a*b*c=n,a,b,c∈Z+
求min(2*(a*b+b*c+a*c))
既然a,b,c都是不大于n的整数,只要三个循环遍历枚举abc,当a*b*c=n的时候更新答案就好啦
上一句的"="很重要,不要使用">="!一定要把纸包装内部填满!
#include <stdio.h>
int Area(int n){
int min = 10000;
for(int i=1;i<=n;i++){
for(int j = 1;j<=n;j++){
for(int k =1;k<=n;k++){
if((i*j*k == n)&&(min > 2*(i*j+j*k+i*k))){
min = 2*(i*j+j*k+i*k);
}
}
}
}
return min;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
printf("%d\n",Area(n));
}
return 0;
}