问题描述:
分析
这道题相对简单,而且数也不大。这里可以先把所有可能的结果都计算并保存在了数组里,没进一个输入数据直接输出结果。
源码
#include <iostream>
using namespace std;
int n[1001];
void fun() {
for (int k=1; k<=1000; k++){
int minarea=100000;
for (int len=1; len<=k; len++) {
if (k%len==0) {
int maxwi=k/len;
for(int wi=1; wi<=maxwi; wi++) {
if (maxwi%wi==0) {
int hi=maxwi/wi;
int area=(len*wi+len*hi+wi*hi)*2;
if (minarea>area) {
minarea=area;
}
}
}
}
}
n[k]=minarea;
}
}
int main() {
int c;
cin >> c;
fun();
int i;
while(c--) {
cin >> i;
cout << n[i] << endl;
}
return 0;
}