做業二

思路與流程圖

C語言:

假設電梯停在第 i 層樓,咱們計算出全部乘客總共爬樓梯的層數(與耗時數至關)是s。若是有down個乘客想去的樓層在第 i 層之下,有fit個乘客正好想去的樓層是第 i 層,有up個乘客想去的樓層在第 i 層之上。這個時候,重點來了:若是電梯改停在i-1層,全部目的地在第i - 1層如下的乘客能夠少爬1層,總共少爬N1層,全部在i層及以上的乘客要多爬一層,總共多爬now+up層,這時總共須要爬s-down+fit+up。it

  反之,若是電梯在i+1層停全部目的地在第 i 層以上的乘客能夠少爬1層,總共少爬up層,全部在 i 層及如下的乘客要多爬一層,總共多爬fit+down層,這時總共須要爬s+down+fit-up層。語言

  可見,當down> fit+up 時,電梯在第i-1層樓停更好;當down+fit < up 時,電梯在i+1層停更好。其餘狀況在第i層更好。

  如此一來,問題的解法就出來了,從第一層開始考察,計算各位乘客走的樓層的數目(與耗時數至關),而後根據down,fit,up之間的關係進行調度,直到找到下一個最佳目標樓層;重複上述檢索操做,直到所有送完。

C++流程圖

相關文章
相關標籤/搜索