HDU1008

很简单,但是有些特殊情况不清楚比如连续两个楼层一样没考虑结果WA 

#include<iostream>
using namespace std;
int main(void){
int n,s,a[102];
while(scanf("%d",&n)!=EOF){
if(n==0) return 0;
a[0]=0;
s=0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(a[i]>a[i-1]) s+=6*(a[i]-a[i-1])+5;
if(a[i]<a[i-1]) s+=4*(a[i-1]-a[i])+5;
}
printf("%d ",s);
}
}

将if(a[i]<a[i-1])改为else后成功AC

#include<iostream>
using namespace std;
int main(void){
int n,s,a[102];
while(scanf("%d",&n)!=EOF){
if(n==0) return 0;
a[0]=0;
s=0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(a[i]>a[i-1]) s+=6*(a[i]-a[i-1])+5;
else s+=4*(a[i-1]-a[i])+5;
}
printf("%d ",s);
}
}

原文地址:https://www.cnblogs.com/slay/p/10392474.html