1.本次做業開始使用C++編寫了(面向過程的C++,2333)
2.粗略學習了一下文件輸入輸出,和項目的建立等(在大佬眼裏最基本的操做QAQ,然而我仍是有點暈暈的,平時都是ctrl+n新建源代碼寫的一個文件,大概沒花很是多的 功夫去學這些吧)
3.電梯的操做函數或者說類的主體操做仍是不懂,大概有以下的想法:ios
假設電梯停在第 i 層樓,咱們計算出全部乘客總共爬樓梯的層數(與耗時數至關)是s。若是有down個乘客想去的樓層在第 i 層之下,有fit個乘客正好想去的樓層是第 i 層,有up個乘客想去的樓層在第 i 層之上。這個時候,重點來了:若是電梯改停在i-1層,全部目的地在第i - 1層如下的乘客能夠少爬1層,總共少爬N1層,全部在i層及以上的乘客要多爬一層,總共多爬now+up層,這時總共須要爬s-down+fit+up。 反之,若是電梯在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之間的關係進行調度,直到找到下一個最佳目標樓層;重複上述檢索操做,直到所有送完。
git addressgit
其中main函數github
#include <fstream.h> #include"moveing direction judge.h" using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char** argv) { ifstream OpenFile("input.txt"); /* int a; SaveFile <<"......." while(!OpenFile.eof() { OpenFile.get(a); ....... } 此處爲操做函數/類 OpenFile.close(); */ /* ofstream SaveFile("output1.txt", ios::out); SaveFile << "......"; SaveFile.close(); 此處應該有操做 */ return 0; }