超简单的数学题
2025-07-23 19:58:39
发布于:广东
3阅读
0回复
0点赞
首先作为一个矩形,它能承受的最大正方形的边长就是它较短边的边长所以只要确保i<min(n,m)就行
然后使用(n+1-i)(m+1-i)算出矩形中可以构建多少个不同位置的边长为i的正方形。原理为正方形的数量会从自上而下第一个格子和从左往右第i个格子开始进行枚举所以剩余高度为:n-i,剩余长度为:m-i 然后分别加上最开始的那个i即第一个得出
(n-i+1)(m-i+1)
#include<iostream>
using namespace std;
int main(){
int n,m,k=0;
cin>>n>>m;
for(int i=1;i<=min(n,m);i++)
k+=(n+1-i)*(m+1-i);
cout<<k;
return 0;
}
这里空空如也
有帮助,赞一个