期末考试-Minecraft(算法基础 第10周)

问题描述:
期末考试-Minecraft(算法基础 第10周)_第1张图片
分析
这道题相对简单,而且数也不大。这里可以先把所有可能的结果都计算并保存在了数组里,没进一个输入数据直接输出结果。
源码

#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;
}

你可能感兴趣的:(期末考试-Minecraft(算法基础 第10周))