题解
2026-10-04 13:55:32
发布于:新疆
3阅读
0回复
0点赞
这道题让我们数一个矩形内有多少个正方形。
首先,正方形的边长不能超过矩形最短的边,不然正方形就放不下了。
长为a,宽为b,最短的边为d,正方形长为e。
之后逐步增加正方形的边长,最开始为1,增大到跟d一样。
注意,数完再增大。
在演草时,我发现一个公式,在一个长为a,宽为b的矩形中,放入边长为e的正方形,一共有 (a-e+1)*(b-e+1) 种可能。
所以只要数一下正方形放置的可能数量就可以了。
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;//输入长a,宽b。
int c=0;//能放置正方形的总数。
int d=0;//最短的边长。
if(a>b){d=b;}else{d=a;}
for(int i=1;i<=d;i++){
c+=(a-i+1)*(b-i+1);
//正方形初始边长为1,之后不断增大,把各种正方形放置的可能加起来。
}
cout<<c;
return 0;
这段代码的时间复杂度为d,十分的简洁。
这里空空如也

有帮助,赞一个