对于一个nm的棋盘,共有矩形 (m+m-1+m-2+…+1)(n+n-1+n-2+…+1)
即[m*(m+1)/2][n(n+1)/2]个,这一步可用前一个式子循环加,也可用后一个式子直接算;
共有正方形(假设m>n) mn+(m-1)(n-1)+…+(m-n+1)*1 个,这步用循环做就行;
你所说的长方形就用 矩形数 减去 正方形数 就行了
#include<iostream>
using namespace std;
int main()
{
int m,n;
cin >> m >> n;
int t=n;
int res1=0;
int res2=(m*(m+1)/2)*(n*(n+1)/2);
for(int i=0;i<t;i++)
{
res1+=m*n;
m--;
n--;
}
cout << res1 << " " << res2-res1;
}