每个数据之间的连续处理一般不需要数组,没那个必要。第一次多读取一个值,然后依次往后处理即可
n个数据就要停n层,初始为sum = n * 5 + 6 * m;此时已在第一个数据的楼层,两个楼层差值为负加楼层之差乘4,否则乘6,每次将楼层置为当前楼层,依次与后面的进行处理
#include<stdio.h>
int main(void)
{
int n, m, sum, k;
while (scanf("%d", &n) != EOF && n) {
scanf ("%d", &m);
sum = n * 5 + 6 * m;
for (int i = 1; i < n; i++) {
scanf("%d", &k);
sum += (m-k)>0?(m-k)*4:(k-m)*6;
m = k;
}
printf("%d\n", sum);
}
return 0;
}