pascal求解

问题描述:有一个(2N)*(2N)的正方形棋盘,棋盘上有一个直径是2N-1、圆心在棋盘中心的圆。你要写一个程序,计算与圆相交的小正方形个数和完全在圆里面小正方形个数。问题... 问题描述:
有一个(2N)*(2N)的正方形棋盘,棋盘上有一个直径是2N-1、圆心在棋盘中心的圆。

你要写一个程序,计算与圆相交的小正方形个数和完全在圆里面小正方形个数。
问题求解:
由键盘输入一个数字N,0 < N <= 150。
打印输出2行。第一行是与圆相交的小正方形个数,第二行是完全在圆里面小正方形个数。
输入输出样例:
样例1
输入:N = 3
输出:20
12

样例2
输入:N = 4
输出:28
24
展开
 我来答
市守沐
2011-01-21 · TA获得超过194个赞
知道答主
回答量:87
采纳率:0%
帮助的人:35.6万
展开全部

最直接的思路:

    设二维布尔数组,将该圆走过的路径扫描一遍(要用到圆的方程),经过的格子标记,并记录走过的格子数(红色)。

    然后将红色格子围着的格子(蓝色)宽搜,统计个数。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式