• 电梯个人


    一、题目

    • 石家庄铁道大学基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信1201-1班的张一东觉得在每层都停觉得不耐烦。
    • 由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某一楼层。在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层。
    • 问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少。

    二、设计思路

    基础大楼共有18层,则电梯要求停在2-18层,一部电梯每次最多乘15人。电梯将会根据不同楼层被按的次数,计算在停在2~18各楼层情况下,电梯乘客的上下楼总和,并比较大小,取最小值。

    三、总结

    老师提供的思路有点难以理解,个人还是偏向于自己的思路。便于计算机运行的思路,不是便于人的思路。

    四、代码

    #include<iostream.h>

    #include<math.h>

    int lc[20]={0};

    int sum[15]={0};

    int Min(int a[])

    {

             int min=a[2];

             int i;

             int j=2;

             for(i=3;i<=18;i++)

             {

                       if(min>a[i])

                       {

                                min=a[i];

                                j=i;

                       }

             }

             return j;

    }

    int main()

    {

             int n;

             int m;

             int i;

             int j;

             cout<<"乘坐电梯的人数:"<<endl;

             cin>>n;

             cout<<"请依次输入要去的楼层:";

             for(i=0;i<n;i++)

             {

                       cin>>m;           

                       lc[m]++;

             }

             for(i=2;i<=18;i++)

             {

                       for(j=2;j<=18;j++)

                       {

                                if(lc[j]==0)

                                         continue;

                                else

                                         sum[i]=sum[i]+abs(j-i)*lc[j];

                       }

             }

             cout<<"电梯应停在"<<Min(sum)<<"层"<<endl;

             return 0;

    }

     

    五、截图

  • 相关阅读:
    样式表中!important的用法
    ORA27101: shared memory realm does not exist问题的解决
    重置标识列的当前值
    ASP.NET Oracle数据库使用事务时注意事项
    Oracle中约束的添加方法总结
    HTML段落自动换行的样式设置
    ASP.NET应用程序中的服务器错误
    oracle中的rownum、order by与分页
    position:relative与float的区别
    Moss/Sharepoint 备份或还原时出错的处理(持续更新)
  • 原文地址:https://www.cnblogs.com/lsfh/p/4440182.html
Copyright © 2020-2023  润新知