新手版题解 之 数方格
2026-05-12 17:12:29
发布于:广东
0阅读
0回复
0点赞
保留了注释
核心公式即边长为i的正方形有 (n-i+1)*(m-i+1) 种摆法,剩下的你应该都会了ww (悲
好了直接上代码:
#include <iostream>
#include <algorithm>//min函数 万能头也行
using namespace std;int main() {
int n, m;//广场的长和宽
cin >> n >> m;
int max_len = min(n, m); //保存正方形的最大边长
int cnt = 0; //方案总数,反正不大于100用int就行
for (int i = 1; i <= max_len; ++i) {
cnt += (n - i + 1) * (m - i + 1);
}//遍历所有可行边长,计算总数
cout << cnt << endl;//输出可行的方案总数
return 0;
}
精简版:
#include <bits/stdc++.h>
using namespace std;int main() {int n, m;cin >> n >> m; int max_len = min(n, m);int cnt = 0;for (int i = 1; i <= max_len; ++i) {cnt += (n - i + 1) * (m - i + 1);}cout << cnt << endl;return 0;}
这里空空如也




有帮助,赞一个