上楼:输入俩楼层之差 * 6s +停留层的5s
下楼:输入俩楼层之差 * 4s +停留层的5s
#include <iostream>
using namespace std;
int main()
{
int n;
while(cin>>n && n!=0)
{
int sum,i,str[100] = {0};
for(i=0;i<n;i++)
{
cin>>str[i];
}
sum = (str[0]*6+5);
for(i=1;i<n;i++)
{
if(str[i]<str[i-1]) sum+=(str[i-1]-str[i])*4+5;
else if(str[i]>=str[i-1]) sum+=(str[i]-str[i-1])*6+5; //一定要考虑电梯停留在原楼层的情况
}
cout<<sum<<endl;
}
return 0;
}
搜索了别人没有使用数组的代码(๑≖ิټ≖ิ),一个个保存输入的楼层效率更高,虽然当时也想过一个个保存的办法但是。。 (๑ १д१)
#include<stdio.h>
int main()
{
int t0,t,N,sum,k;
while(scanf("%d",&N)!=EOF&&N!=0)
{
t0=0;sum=0;k=0;
while(N--)
{
scanf("%d",&t);
if(t>t0)
sum+=(t-t0)*6;
else
sum+=(t0-t)*4;
t0=t; //(ノ`⊿´)ノ就是这里啊!!!
k++; //k用来保存停留层数的次数
}
sum+=k*5;
printf("%d\n",sum);
}
return 0;
}