问题描述
由用户给出一个大圆 和n个小圆的半径,然后 把这几个小圆不重叠的放进去,如果都能放进去,给出算法,如果放不进去,尽可能多的放,使放进去的小圆面积之和最大,
算法描述(不严密)
1先在图像中输出大圆
2把小圆按半径从大到小排列
3把第一个圆放到大圆的最下面(4第二圆要与大圆和先放进去的小圆相切,这个可以通过二元二次方程解出连个圆心,判断两个圆是否都合理(和别的圆不重叠),如都合理,选择一个好的放法,如只有一个合理,选择之,都不理和,结束,放第三个圆的时候,要分别求和大圆与其中一个小圆相切, 大圆与另个小圆相切,两个小圆相切,共求出六个圆心,判断是否合理 ,并选择最好的然后依次放第4个,5个。n个。直到都不判断都不合理,或者没有可放的圆。
怎么用程序实现啊?大家帮帮忙啊?