题目描述
有一个n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。
输入格式
一行,两个正整数 n,m(n≤5000,m≤5000)。
输出格式
一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。
输入输出样例
输入 #1
2 3
输出 #1
8 10
/*
* @Description: To iterate is human, to recurse divine.
* @Autor: Recursion
* @Date: 2022-03-09 10:29:52
* @LastEditTime: 2022-03-09 10:40:42
*/
#include <bits/stdc++.h>
using namespace std;
int n,m;
int main()
{
while(cin>>n>>m){
long long int ans1=0,ans2=0;
int len=min(n,m);
for(int i=1;i<=len;i++){
ans1+=(m-i+1)*(n-i+1);
}
cout<<ans1<<" ";
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
ans2+=(n-i+1)*(m-j+1);
}
ans2=ans2-ans1;
cout<<ans2;
}
}
要开long long int
该博客主要介绍了如何计算一个n×m棋盘中正方形和长方形(不包括正方形)的数量。通过遍历不同边长的正方形和长方形,累加它们的个数,最终得出答案。程序使用C++编写,通过双重循环实现,对于正方形的计数,使用了一个变量累加;对于长方形,通过两层嵌套循环得到所有可能的长方形,然后减去正方形的数量。输入为棋盘的行数n和列数m,输出为两个整数,分别表示正方形和长方形的数量。
506

被折叠的 条评论
为什么被折叠?



