刚无聊想到一道算法题已知一个矩形的的长宽和圆的个数,求这里面圆的面积占比最大为多少?比如一个10*10的矩形,如果要求圆的个数为一,那么这个圆的直径应该就是10了,如果园的个数为2,那么这两个圆的直径可能一个10,另一个就是大圆的边角了,或者两个直径都是5或者其他,但是需要里面圆占得面积比是最高的,所以两个圆的直径应该是唯一的,同样三个圆四个圆,或者矩形的长宽比为3:2等等,那么里面的圆应该怎样的。函数//h:矩形的高,w:矩形的宽,count:圆的个数function fn(h,w,count) {
}
1 回答

一只甜甜圈
TA贡献1836条经验 获得超5个赞
尽可能取半径最大值优先画圆。
以下算法思路有错误,忽略
每个矩形内画一个圆后
必定有4个角落空间可以继续画圆
也有可能存在矩形的
长-宽
的剩余的空间继续画圆(如果是正方形,则此条不存在)
思路是每次画圆后,根据当前的长,宽
计算出上面2条可能出现的长,宽,半径
,放入优先队列
,接着每次取出最大的半径值继续画圆,直到count
为0
添加回答
举报
0/150
提交
取消