1.题目编号:1006
2.简单题意:给出一组楼层数,计算电梯所要花费的时间,每上一层花费6秒,每层楼停5秒,每下一层需要4秒。
3.简单思路形成过程:将给的楼层数放在一个动态数组里面,只需要知道比较一下相邻数据的大小就可以知道要用层数乘以6还是4。
4.感悟:看似简单的一道题,其实往往暗藏着一些容易被人忽略的细节,比如连续的两个数相同,则也需要将时间加上5。还有给时间初始化的时候需要将它写在while里面,一开始 一直编译错误,仅仅是因为 for (int j=0;j<=a;j++)这条语句,只要将等号去掉就正确了,因为当j=n时,n+1不存在,看来一些题写起来挺好写,改起来好费时间啊,看了又看好几十遍都没看出来,严重感觉自己脑细胞不够用了
5.AC的代码:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a,n;
vector <int> v;
while (cin>>a&&a!=0){
int t = 0;
v.push_back(0);
for (int i=1;i<=a;i++)
{
cin>>n;
v.push_back(n);
}
for (int j=0;j<a;j++)
{
if (v[j]<v[j+1])
t= t + 6*(v[j+1]-v[j])+5;
else if (v[j]>v[j+1])
t = t + 4*(v[j]-v[j+1])+5;
else
t = t + 5;
}
cout<<t<<endl;
v.clear();
}
return 0;
}