一、设计思路
本来我的思路是根据上楼的人数和上楼的层数来计算出平均值,但是我发现这个思路不对。于是我选择了最笨的方法,复杂度为O(n2)。
(1)输入坐电梯的人数和要去的楼层;
(2)找到输入楼层里最高的,这样可以减少遍历的次数;
(3)从最低楼层开始遍历,直到最高层。内部循环计算每个人所要爬楼的层数之和,并比较找出最小的。
(4)输出结果
二、源代码
1 // 电梯.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include "iostream.h" 6 #include "stdlib.h" 7 #define MAXSIZE 15 8 9 void Input(int &num,int flour[]) //输入乘坐电梯的人数及楼层10 {11 cout<<"请输入乘坐电梯的人数(限定15人):";12 cin>>num;13 if(num>15)14 {15 cout<<"输入错误!"<>flour[i];22 if(flour[i]>18)23 {24 cout<<"输入错误!"< highest)37 {38 highest=flour[i];39 }40 else //找出最低楼层41 {42 lowest=flour[i];43 }44 }45 for(i=lowest;i<=highest;i++) //从最低楼层开始遍历直到最高楼层46 {47 sum=0;48 for(int j=0;j
三、结果截图
四、心得体会
上课的时候老师,讲了对这个算法进行优化,终于知道数学学得好有什么优势了。本来觉得编程与数学有关,但是关系不大,现在觉得老师说的不错,算法就是数学。以后碰到这种算法优化的或是对算法要求比较高的,可以深入研究一下。