zoukankan      html  css  js  c++  java
  • 电梯个人

    一、题目

    • 石家庄铁道大学基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信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;

    }

     

    五、截图

  • 相关阅读:
    学习心得——day2
    学习心得——day3
    学习心得——day1
    Android JNI so库的开发
    android 删除相册图片并同步到图库
    使用AccessibilityService执行开机自启动
    UDP Server
    uicode编码解码
    GreenDao的使用
    java之并发编程线程池的学习
  • 原文地址:https://www.cnblogs.com/lsfh/p/4440182.html
Copyright © 2011-2022 走看看