竞赛
考级
#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; }
勇敢的小霍皮
135****0149
胡雨轩
栗子
说实话,这一道题一点难度都没有 分析: 假设一个正方形边长为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就结束,所以代码如下
HUDSI
#include
复仇者_黑客_ZDZL
荣耀13 Pro MAX
曾致远
截至2025/6/22不会TLE 这题思路其实挺简单,我们可以把所有正方形分类,按照左上点x轴,左上点y轴和边长分。 接下来就简单了: 遍历x轴和y轴和边长 for(int c = 1;((a + c <= n) && (b + c <= m));c++)//边长,这个不能直接小于了 注意边长如果不想写的这么复杂可以写成 然后是完整代码一份 提交... 执行用时成功逼近三位数。 好歹过了
程鼎言
136****3428
(以下为钉钉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> #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黄宇鹏
首先: 在长方形中数正方形的公式: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
哈喽小伙伴们,今天我继续给大家分享题解! 话不多说,这道题懂的都懂,那么直接给大家上代码!
dchk-SY
#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; }
桥本·黎
#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; }
嘿
Young Chen
思路:若边长为111, 有nmnmnm个正方形, 若边长位222,则有(n−1)∗(m−1)(n-1)*(m-1)(n−1)∗(m−1)个正方形...... 直到 n&&m 不成立(只要nnn或mmm等于000)那么结束。 代码如下:
钱昕宸
共116条