解法一:暴力求解(枚举法)
确定节点跟长宽
如下面代码,i,j是我们确定的节点(坐标)从此节点开始枚举 a,b则是从边长(长度)(从1开始),然后如果a-i(节点坐标)==b-j则说明两条边相等即该图形为正方形,否则是长方形。
代码如下
解法二:(归纳公式)
求正方形的个数:
举具体例子(4×5方格)
边长为1的个数:4×5
边长为2的个数:3×4
边长为3的个数:2×3
边长为4的个数:1×2
由此可以总结正方形个数公式为:Σ(X-i)*(y-i) (i=0–>min)
求长方形(也包括正方形 实际上是图形的个数)的个数:
举具体例子(4×5方格)
长为1有5个 宽为1有4个
长为2有4个 宽为2有3个
长为3有3个 宽为3有2个
长为4有2个 宽为4有1个
长为5有1个
所以图形的个数为(54)+(53)+(…)+(1*1)
总结可得图形个数公式为:Σ(x-i)*(y-j) (i=0–>max) (j=0–>min)
所以长方形的公式个数为:Σ(x-i)(y-j) -Σ(X-i)(y-i)