名人说:故立志者,为学之心也;为学者,立志之事也。—— 王阳明
进度:C/C++语言100题练习计划专栏,目前85/100
🥇C/C++语言100题练习专栏计划:目的:巩固练习C/C++语言,增强上机、动手实践能力,交流学习!
Problem Description
有一个
n
×
m
n \times m
n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。
Input
一行,两个正整数 n , m n,m n,m( n ≤ 5000 , m ≤ 5000 n \leq 5000,m \leq 5000 n≤5000,m≤5000)。
Output
一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。
Sample Input
2 3
Sample Output
8 10
#include
using namespace std;
long long n,m,square,rectangle;
int main()
{
//输入棋盘的长和宽
cin>>n>>m;
//循环,从n-0到n-(n-1)
for(int i=0; i<n; i++)
for(int j=0; j<m; j++) //循环,从m-0到m-(m-1)
{
if(i==j)
square+=(n-i)*(m-j);//如果i==j,说明是正方形
else
rectangle+=(n-i)*(m-j);//如果不等说明是矩形
}
//输出包含的正方形、长方形数目
cout<<square<<" "<<rectangle<<endl;
return 0;
}
★关于本题思路及枚举:
1、本题思路简述
首先,统计一个n * m的矩形里有多少个正方形,长方形。
要明确,正方形和长方形都是矩形,那么n * m的矩形里的
矩形数=正方形数+长方形数
明白这些对两者就好求解了
2、枚举
1️⃣枚举相关概念
枚举算法是我们在日常中使用最多的一种算法思想,它的核心思想是:枚举所有的可能,确定枚举对象、范围和判定条件;然后注意枚举可能的解并验证每个解是否是问题的解。
2️⃣常见的枚举结构
循环+判断
3️⃣枚举的优缺点
①优点
枚举算法一般是现实生活问题的“直译”,所以比较直观,易于理解
枚举算法建立在考察大量状态、甚至是穷举所有状态的基础上,所有算法的真确性容易证明
②缺点
枚举算法的效率取决于枚举状态的数量和单个状态枚举的代价,所以枚举效率相对来说比较低
2 3
8 10
--------------------------------
Process exited after 1.203 seconds with return value 0
请按任意键继续. . .
Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
如果对大家有帮助的话,希望大家能多多点赞+关注!这样我动力会更足哦! ღ( ´・ᴗ・` )比心