平面上有一个矩形,左下角坐标是(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 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!