平面上有一個矩形,左下角坐標是(0,0),右上角坐標是(RI,RI),年夜矩形的內部有小矩形,這些小矩形都平行于坐標軸,而且它們都互不重疊,并且所有小矩形的極點坐標都是整數。請畫一條平行于Y軸的直線x=a,要求落在直線左邊的所有小矩形面積必需年夜于等于落在直線右邊的面積,同時落在直線雙方矩形的矩形面積差盡量最小,并且直線左邊的年夜矩形面積要盡可能的年夜。
若何用C++計較合適前提的直線x=a呢?小編與大師分享編程經驗。
測試本法式,第1行輸入兩個整數,暗示年夜矩形的右上角和小矩形的個數。
后面每一行輸入4個整數,暗示小矩形左上角的坐標、高度和寬度。
起首,界說一個常量MAXN,其值為100。
界說各整型變量,實現法式的運算。
界說3個長整型變量,保留朋分年夜矩形后,左側所有小矩形的面積、右側所有小矩形的面積,以及朋分線的X軸坐標。
接著,界說4個數組,保留各小矩形的初始值。
輸入年夜矩形右上角的坐標值,以及小矩形的數量。
用for輪回語句,節制輸入各小矩形的初始值。
用do-while輪回語句,節制計較知足前提的朋分線,前提為low<=high。
接著,設置各初始值。
用for輪回語句,節制計較落在朋分線左側和右側小矩形的面積。
用if語句判定計較出,各類環境下落在朋分線兩側的小矩形面積。
然后,用if語句節制計較出朋分線X軸坐標,獲得X軸坐標撤退退卻出輪回。
最后,輸出知足前提的朋分線的X軸坐標。
運行法式,輸入測試數據后,電腦就管帳算出知足前提的朋分線X軸坐標。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!