这道题的思路是将这个棋盘上的每一个小方块看成是一个坐标,通过遍历所有初始方块和末方块得到一个个的图形
那么将它的末坐标和它的初始坐标相减之后得到这个图形的长和宽
经过判断长和宽是否相等后得到正方形的长方形的个数
#include<iostream>
#include<math.h>
using namespace std;
int n, m, sum, sum1, l;
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)//遍历初始坐标
{
for (int k = i; k <= n; k++)
{
for (int l = j; l <= m; l++)//在初始坐标基础上遍历最终坐标
{
if ((k - i) == (l - j))//说明是正方形
sum++;
else//否则是长方形
sum1++;
}
}
}
}
cout <<sum << " " <<sum1 ;
return 0;
}