竞赛
考级
说实话,这一道题一点难度都没有 分析: 假设一个正方形边长为i,一算可知横排可容下(n-i+1),一列可容下(m-i+1),这样,代码就出来了。 code
133****8992
这题就拿题目给的那个图片举例 边长 数量 1 4*6 2 3*5 3 2*4 4 1*3 可以发现,每次n和m先相乘,再各自减1 并且短边减到大于0就结束,所以代码如下
/*注释*/
#include<iostream> using namespace std; int main(){ long long n,m; cin>>n>>m; long long sum=0; if(n<=m){ for(int i=n,j=m;i>0;i--,j--){ sum+=i*j; } else{ for(int i=n,j=m;j>0;i--,j--){ sum+=i*j; } } cout<<sum; return 0; }
#include
复仇者_黑客_ZDZL
荣耀13 Pro MAX
曾致远
(以下为钉钉AI生成) 这是一个有趣的组合问题,涉及计算在一个给定的矩形区域内可以放置多少个不同大小的正方形。我们可以通过逐个枚举所有可能的正方形大小,并计算每个大小的正方形可以在矩形内放置的次数来解决这个问题。 解决思路 1.定义矩形和正方形:矩形的长为 n,宽为 m。我们需要计算在这个矩形中可以放置的所有正方形的 数量。 2.枚举所有可能的正方形大小:从边长为1的正方形开始,直到边长为 min(n, m) 的正方形。 3.计算每种大小的正方形的数量: 对于一个边长为 k 的正方形,它在矩形内的放置方式有 (n - k + 1) * (m - k + 1) 种。 4.累加结果:将所有可能的正方形数量累加起来。 代码实现 以下是完整的C++代码实现: 代码解释 1.输入读取:读取矩形的长 n 和宽 m。 2.循环枚举正方形大小: k 表示正方形的边长,从1到 min(n, m)。 对于每一个 k,计算它可以放置的次数 (n - k + 1) * (m - k + 1),并将其累加到 count 中。 3.输出结果:最终输出累加的结果 count。 示例 假设输入为 n = 3 和 m = 3,那么我们可以这样计算: 边长为1的正方形有 3 * 3 = 9 个。 边长为2的正方形有 2 * 2 = 4 个。 边长为3的正方形有 1 * 1 = 1 个。 总共有 9 + 4 + 1 = 14 种不同的方案。
C++能吃吗?
#include <iostream> using namespace std; int main(){ int n,m; cin>>n>>m; int count =0; for (int k = 1; k <= min(n, m); k++) { for(int i=0; i<=n-k;i++){ for(int l=0;l<=m-k;l++){ count ++; } } } cout << count << endl; return 0; }
我是你爹
#include<bits/stdc++.h> using namespace std; int main() { int n, m; int ans=0; cin>>n>>m; for (int i=1;i<=min(n,m);i++) ans+=(m-i+1)*(n-i+1); cout<<ans; }
轻纺城五下shenyuhan28
第一次发表看法;编程小白一个,大佬求带 #include<iostream> #include<cmath> using namespace std; int main() { int length,width; int ans=0; cin>>length>>width; if(length>=width) for(int i=length,j=width;j>0;i--,j--){ ans+=ij; } else { for(int i=length,j=width;i>0;i--,j--) ans+=ij; } cout<<ans; return 0; }
智能23-2黄宇鹏
究喷[ex]\(o-o)/
首先: 在长方形中数正方形的公式: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循坏去代表减去的数; 上代码: ↑基础框架/输入 ↑算出正方形个数 与前面推理一致(核心) ↑输出/收尾 完整代码: 谢谢观看!
mzx
勇敢的小霍皮
#include <bits/stdc++.h> using namespace std; int n,m; int ans; void work() { cin>>n>>m; while(n>0&&m>0) { ans+=n*m; n--,m--; } cout<<ans; } int main() { work(); return 0; }
Voldemort
哈喽小伙伴们,今天我继续给大家分享题解! 话不多说,这道题懂的都懂,那么直接给大家上代码!
zhouty
#include<bits/stdc++.h> using namespace std; int main(){ int x , y; cin >> x >> y; int cnt = 0; int j = y; for(int i = 0;i < min(x,y);i++){ cnt += (x-i)*(y-i); } cout << cnt; return 0; }
DARK SPECTRE
#include<bits/stdc++.h> using namespace std; int main() { int n,m,sum=0; cin >>n>>m; while(n>0&&m>0) { sum+=n*m; n--; m--; } cout<<sum; return 0; }
^
#include <bits/stdc++.h> using namespace std; int main(){ int a,b; cin>>a>>b; int sum=0; if(a<=b)swap(a,b); for(a,b;b>0;a--,b--) sum+=a*b; cout<<sum; return 0; }
桥本·黎
https://www.acgo.cn/application/1683064920928477184
.
#include<iostream> using namespace std; int main(){ int n,m,num=0; cin>>n>>m; while (n>0 and m>0){ num += m*n; m--; n--; } cout << num; return 0; }
嘿
共99条