十分easy
2026-03-23 22:40:44
发布于:河北
8阅读
0回复
0点赞
先读题
是说
在n*m 的矩阵中 正方形的数量
让我们思考一下
遍历变长
— — — — — — n、
可以放n-i+1个边长
|
|
|
| m
可以放m-i+1个边长
都知道四条线段确定一个四边形
所以给出长度和位置就能确定它
所以重点
for(int i=1;i<=min(n,m);i++){
sum+=(n-i+1)*(m-i+1);
//遍历每一个边长用 (n-i+1)*(m-i+1) 找正方形数量
}
本来我是想用(n/边长)*(m/边长) 发现不对
——————————组织代码
#include<bits/stdc++.h>
using namespace std;
int n,m,sum;
int main(){
cin>>n>>m;//范围
for(int i=1;i<=min(n,m);i++){//遍历边长
sum+=(n-i+1)*(m-i+1);//sum求和
}
cout<<sum;
}
第一次做,不太好;



这里空空如也





有帮助,赞一个