汽車加油問題

2021-09-02 06:15:17 字數 1142 閱讀 7877

上次面試的時候遇到這麼一道題目:一輛汽車加滿油後可以行駛n千公尺。旅途中有若干個加油站。若要使沿途的加油次數最少,設計乙個有效的演算法,指出應在那些加油站停靠加油。

乙個簡單的演算法如下:只要加油站站距小於汽車可行駛距離,就將其累加,累加標記開啟,當累加的和大於行車距時,上乙個加油站點便是必須要加油的站點,使用當前站距為起始累加;當累加的和等於行車距時,當前站點則為必須要加油的站點,使用累加站距清零,累加標記關閉;

namespace test

;int distance = 40;

findallpoint(point,distance);

}private static void findallpoint(int point, int distance)

console.writeline();

console.writeline("------------------------------------------");

//累加標記

bool countflag = false;

//第n次加油

int jpoint = 1;

//累加存放

int sumvalue = 0;

for (int i = 0; i < point.length; i++)

//與行車距相等

if ((point[i] == distance) && (countflag == false))

次加油是在站點", jpoint, i);

jpoint++;

continue;

}//比行車距相小,開始累加

if ((point[i] < distance) && (countflag == false))

//有累加

if (countflag == true)

次加油是在站點", jpoint, i - 1);

jpoint++;

continue;

}//與行車距相等

if (sumvalue == distance)

次加油是在站點", jpoint, i);

jpoint++;

continue;

}//繼續累加

continue;}}

}}}

汽車加油問題

time limit 1000ms memory limit 65536k 有疑問?點這裡 一輛汽車加滿油後可行駛n公里。旅途中有若干個加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。並證明演算法能產生乙個最優解。對於給定的n和k個加油站位置,計算最少加油次數。輸入資料的...

汽車加油問題

汽車加油問題 一輛汽車加滿油後可以行駛n公里,旅途中有加油站,設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。測試用例 7 7 n k 1 2 34 5 1 6 6 第k個加油站與第k 1個加油站之間的距離,其中第乙個代表起點,最後乙個代表終點。輸出 4 最少加油次數 解 汽車加...

汽車加油問題

汽車加油問題 一輛汽車加滿油後可以行駛n千公尺。旅途中有k個加油站。若要使沿途的加油次數最少,設計乙個有效的演算法,指出應在那些加油站停靠加油。資料輸入 由檔案input.txt 給出輸入資料。第一行有2個正整數n和k,表示汽車加滿油後可行駛nkm,且旅途中有k個加油站。接下來1行中,有k 1個整數...