请问做一个尺寸为 a * b * c(单位:厘米)的开口的立方体纸箱(只有一个面是不需要封的,其余 5 个面都需要封起来,这样算开口的),最少需要多少平方厘米的纸。

请问做一个尺寸为 a * b * c(单位:厘米)的开口的立方体纸箱(只有一个面是不需要封的,其余 5 个面都需要封起来,这样算开口的),最少需要多少平方厘米的纸。

#inckude <iostream>
using namespace std;
int _max(int a, int b, int c)
{
    int m = a > b? a : b;
    m = m > c? m : c;
    return m;
}
int main() {
    int a,b,c;
    cin >> a >> b >> c;
    r = a*b*2+a*c*2+b*c*2-_max(a*b,a*c,b*c);
    cout << r << endl;
    return 0;
}
#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    cout << "请输入纸箱尺寸 a b c(单位:厘米):" << endl;
    cin >> a >> b >> c;

    int s1 = a * c;  // 长面积
    int s2 = b * c;  // 宽面积
    int s3 = a * b;  // 底面积

    // 计算总面积
    int total_area = 2 * (s1 + s2 + s3) - s1;

    cout << "需要的最少纸张面积为:" << total_area << " 平方厘米" << endl;

    return 0;
}

这里使用了公式 总面积 = 2 * (长面积 + 宽面积 + 底面积) - 长面积,因为只有一个面是不需要封的,其余 5 个面都需要封起来,所以总面积就是 5 个面的面积之和减去出现两次的长面积。