PAT 甲級 1008 Elevator【水題】

剛開始看錯了,以爲給的數字都是樓層,我說呢,怎麼都不能理解41是怎麼來的。
把寫錯的代碼貼在這,正好複習一下stringstream和getline的用法

//如果給的數字都是樓層可以這麼做,main函數裏:
string str;
while(getline(cin,str)){
    int a,bf = 0,sum = 0;
    stringstream ss;
    ss<<str;
    while(ss>>a){
        sum += cal(bf,a);
        bf = a;
    }
    printf("%d\n",sum);
}

//1008 elevator

//計算now到goal要花的時間
int cal(int now,int goal){
    int time = 5;
    if(now > goal) time += 4*(now-goal);
    if(now < goal) time += 6*(goal-now);
    return time;
}

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        int a,bf=0,sum=0;
        while(n--){
            scanf("%d",&a);
            sum+= cal(bf,a);
            bf = a;
        }
        printf("%d\n",sum);
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章