博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
电梯问题
阅读量:6602 次
发布时间:2019-06-24

本文共 1530 字,大约阅读时间需要 5 分钟。

1.题目:

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

2.设计思路:

我打算用最笨的方法来实现它,记录所有登电梯乘客的楼层信息,从最低的楼层一直计算到最高楼层,进而比较求出其中最优解,从而电梯调度到那一层实现用户要求。

3.源代码:

1 #include
2 #include
3 using namespace std; 4 int main() 5 { 6 int i,j; 7 int m; 8 int sum[18],summin; 9 int max=2,min,n=0;10 int a[15]={
0};11 cout<<"请输入乘电梯的人数:"<
>n;13 cout<<"请输入您想要去的楼层:"<
< n;i++)15 {16 cin>>a[i]; 17 if(a[i] <= 1)18 {19 cout<<"输入错误,请重新输入!"<<"\t";20 cin>>a[i]; 21 }22 }23 min = a[0];24 for(i = 0;i < n;i++)25 {26 if(a[i] > max)27 {28 max = a[i];29 } 30 if(a[i] <= min)31 {32 min = a[i];33 }34 }35 for(j = min;j <= max;j++)36 {37 sum[j] = 0;38 for(i = 0;i < n;i++)39 {40 sum[j] += abs(a[i] - j);41 }42 }43 summin = sum[min];44 m = min;45 for(j = min;j <= max;j++)46 {47 if(sum[j] < summin )48 {49 summin = sum[j];50 m = j;51 }52 }53 cout<<"电梯停在第"<
<<"层"<

4.结果截图:

5.心得体会:

还是最笨的方法,没能实现课堂上所说的优化算法,还是有些不足吧,希望以后能在这方面多多练习吧。

转载于:https://www.cnblogs.com/zhengt/p/4439248.html

你可能感兴趣的文章
UIWebview与js交互[转]
查看>>
Windows Azure Cloud Service (26) Windows Azure 性能监视器
查看>>
swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)...
查看>>
用户空间缺页异常pte_handle_fault()分析--(上)【转】
查看>>
【转】UIView 的 autoresizingMask 属性
查看>>
HashMap常用方法
查看>>
HTML5之画布的拖拽/拖放
查看>>
[Gradle] Gradle 构建 android 应用常见问题解决指南
查看>>
安卓-PC-Arduino3方通信实现
查看>>
ASP.NET MVC5+EF6+EasyUI 后台管理系统(7)-MVC与EasyUI DataGrid
查看>>
Android下的Junit测试
查看>>
swift3.0:sqlite3的使用
查看>>
[Git] Git把Tag推送到远程仓库
查看>>
【字符串处理算法】字符串包含的算法设计及C代码实现【转】
查看>>
【目录】开源Math.NET基础数学类库使用总目录
查看>>
Angular遇上CoffeeScript - NgComponent封装
查看>>
C++重要知识点小结---1
查看>>
[游戏模版1] MFC最小框架(base function including)
查看>>
javax.validation.ValidationException: Unable to create a Configuration
查看>>
word排版汇总
查看>>