用递归的方法,求四分之一圆的面积

算法上总觉得逻辑不对double overlap(double x1,double y1,double x2,double y2); 这个函数按照题意理解应该是返回一个矩形被圆overlap 的面积。递归的思想就是最简化的自解释,看你写得太复杂了。注意两个实现要点:1. 递归的算法: 比如这里使用最简单的方式就是将矩形S再分为两个矩形S1,S2,返回两个矩形overlap面积之和就是 overlap(S) = overlap(S1) + overlap(S2)2. 递归的出口: a) 如果矩形都在圆内,就返回矩形面积,就是矩形面积计算长x宽 b) 如果矩形都不在圆内,就返回0 c) 题主需要实际验证下,是否需要此出口 :-)
■网友
递归的地方,x2 / 2 应为 (x1 + x2) / 2y2 / 2 应为 (y1 + y2) / 2另外,由于代码里大量出现 X*X + Y * Y \u0026lt;= 1 这样的表达式,应该考虑用宏或者inline函数简化一下。建议将可能用到多次的结果保存下来,可以节省一些时间。那个if(...)goto是多余的,在函数开头已经对矩形是否过小做了判断,这里再对每个小矩形再做判断不但多余而且浪费。
■网友
前辈我是来学习的233


    推荐阅读