砖块问题(大家踊跃回答吧)

来源:百度知道 编辑:UC知道 时间:2024/05/12 16:21:48
这是一道高一的计算机编程问题。只要简单的告诉我思路,写出主要步骤公式就OK了^_^
题目如下:
平地上整齐的铺满乐边长为一分米的正方形砖块,以某四块正方形转块的焦点为圆心。画一个半径为R分米的圆。计算圆内完整砖块的块数。【提示:函数floor(x)指不大于x的最大整数】
高手帮帮忙乐,小弟在这先谢谢了。

大概思路:
建立直角坐标系,正中间的砖块可以用(0,0)表示,左边的一块是(-1,0),上边的一块是(0,1)以此类推。
圆的半径R,则圆内砖块一定都在(-R,-R)(-R,R)(R,-R)(R,R)四角围成的方块内。计算每一个方块离圆心最远的一个角到圆心的距离,判断和R的大小即可。用一个循环可以遍历这些方块。在程序上稍微改动可以只考虑左上方1/4的方块,不过XY轴上的情况要特殊考虑。

如果不懂我们可以再讨论。

补充:关于怎么计算每一个方块离圆心最远的一个角到圆心的距离并且判断和R的大小,我们可以举一个例子。假设R=20,我们遍历到了(-16,13)这个方块,怎么判断是否在圆内呢,首先看它是第四象限内的方块(就是左上方),那么离圆心最远的角就是左上角,也就是(-16.5,13.5),用勾股定理求这个点和(0,0)的距离,判断比不比20大就是在圆内。