题目大意:
有一栋电梯,从0层开始,有一系列请求,上一层需要6,下一层需要4,每一层停留5(包括相同层),求电梯完成请求所需时间
解题思路:
定义数组,第一次计算,下标为零的数组元素减去零为需要上升的层数,层数乘6,为完成上升时间,加五为所需时间,再与下一个请求比较,根据两个数的大小判断*5还是*6,然后+5;
代码:
#include <iostream> #include <algorithm> #include <math.h> using namespace std; int main() { int n,i,x=0,min=0,a[101]; while(cin>>n) { if(n==0) break; for(i=0;i<n;i++) cin>>a[i];x=0; for(i=0;i<n;i++) { if(a[i]>x) { min+=(a[i]-x)*6; x=a[i]; } else { min+=(x-a[i])*4; x=a[i]; } min+=5; } cout<<min<<endl; min=0; } return 0; }
原文:http://www.cnblogs.com/Sikaozhe/p/5295584.html