【题目来源】
https://www.luogu.com.cn/problem/P2241
【题目描述】
有一个 n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。
【输入格式】
一行,两个正整数 n,m(n≤5000,m≤5000)。
【输出格式】
一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。
【输入样例】
2 3
【输出样例】
8 10
【算法分析】
● 正方形及长方形的个数,声明为 long long 型。
● 下图给出了统计边长为 2 的正方形的示意图。
【算法代码】
#include <bits/stdc++.h>
using namespace std;int n,m;
long long zheng,chang;int main() {cin>>n>>m;for(int i=1; i<=n; i++) {for(int j=1; j<=m; j++) {if(i==j) zheng+=(n-i+1)*(m-j+1);else chang+=(n-i+1)*(m-j+1);}}cout<<zheng<<" "<<chang<<endl;return 0;
}/*
in:
2 3out:
8 10
*/
【参考文献】
https://www.luogu.com.cn/problem/solution/P2241