数论:
矩形数量=正方形数量+长方形数量(长宽不一);
在n*m的矩形中
边长为1的正方形数量为n*m;
边长为2的正方形数量为(n-1)*(m-1);
以此类推边长为i的正方形数量为(n-i)*(m-i);
总结 正方形数量:sum+=(n-a)*(m-b); a=b,a<=n,b<=m;
在n*m的矩形中
长为2,宽为1的长方形数量:横向(n-1)*m;
纵向 n*(m-1);
总结 长方形数量:sum+=(n-a)*(m-b); a!=b,a<=n,b<=m;
上代码
#include<iostream>
using namespace std;
long long n,m,rec,sqr;
int main() {
cin>>n>>m;
for(int i=0; i<n; i++)//循环,从n-0到n-(n-1)
for(int j=0; j<m; j++) {//循环,从m-0到m-(m-1)
if(i==j) sqr+=(n-i)*(m-j);//如果i==j,说明是正方形
else rec+=(n-i)*(m-j);//如果不等说明是矩形
}
cout<<sqr<<" "<<rec<<endl;//输出
return 0;
}