题目链接
题意:
求一个n*m的棋盘格上有多少个不同的正方形,多少个不同的长方形。
思路:
用两个for来模拟矩形的两个边,看这个矩形能在该棋盘格上摆出多少个不同的位置即可,如果矩形边长相同则结果加到正方形上,反之则加到长方形上。
代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
const int N=1e6+7;
const int mod=1e9+7;
const int inf=0x7fffffff;
const double pi=3.1415926535;
signed main()
{
IOS;
int n,m,sum1=0,sum2=0;
cin>>n>>m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(i==j)
{
sum1+=(n-i)*(m-j);
}
else
{
sum2+=(n-i)*(m-j);
}
}
}
cout<<sum1<<" "<<sum2<<endl;
return 0;
}