比较简短的题解
2024-02-07 14:57:43
发布于:陕西
0阅读
0回复
0点赞
首先:
在长方形中数正方形的公式:mn+(m-1)(n-1)+(m-2)(n-2)+.......+(m-n+1)(n-n+1)
我们可以发现 其中的减数是一直在+1的 从+0到+min(n,m) (mn可以转化为(m-0)(n-0))
所以可以使用for循坏去代表减去的数;
上代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m,h=0;
cin >> n >> m;
↑基础框架/输入
int mn=min(n,m);
for(int i=0;i<=mn;i++){
h+=(m-i)*(n-i);
}
↑算出正方形个数 与前面推理一致(核心)
cout << h;
return 0;
}
↑输出/收尾
完整代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m,h=0;
cin >> n >> m;
int mn=min(n,m);
for(int i=0;i<=mn;i++){
h+=(m-i)*(n-i);
}
cout << h;
return 0;
}
谢谢观看!
这里空空如也
有帮助,赞一个