• C语言编程练习55:堆积木


    题目描述

    小明的侄子要过生日了,小明买了一套儿童积木送他。这套积木由N个边长为1厘米的正方体小块组成,小明想把这些小块堆成一个大的矩形方体,然后将整个方体包裹上漂亮的包装纸,请问小明最少需要多少平方厘米的包装纸即可?

    输入

    输入的第一行为一个正整数C,表示测试样例的组数。
    每组输入是一个正整数N(1<=N<=1000),表示积木块的个数。

    输出

    对于每组输入,输出将整个方体完全包裹上包装纸所需要的包装纸的最小面积。

    样例输入 Copy

    5
    9
    10
    26
    27
    100

    样例输出 Copy

    30
    34
    82
    54
    130


    思路:可以穷举,长宽从一开始,一个一个算,取最小的。
    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <set>
    
    using namespace std;
    
    int main()
    {
        int n,l,w,t,s,h;//t为输入的组数,l,w为长宽。n为输入,s是面积,h为方体高度
        int min;
        cin>>t;
        while(t--)
        {
            cin>>n;
            min=9999999;
            for(l=1;l<=n;l++)
            {
                for(w=1;w*l<=n;w++)
                {
                    if(n%(l*w)==0)
                    {
                        h=n/l/w;
                        s=l*w*2+l*h*2+w*2*h;
                        if(s<min)
                        {
                            min=s;
                        }
                    }
                }
            }
            cout<<min<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    【笔记】Maven使用入门
    【笔记】c++文件
    【笔记】IntelliJ IDEA配置Hibernate
    【HTML5校企公益课】第四天
    【c++习题】【17/4/16】动态分配内存
    C#
    C#
    C#
    C#
    C#
  • 原文地址:https://www.cnblogs.com/FantasticDoubleFish/p/14432145.html
Copyright © 2020-2023  润新知