名人说:故立志者,为学之心也;为学者,立志之事也。—— 王阳明 进度:C/C++语言100题练习计划专栏,目前85/100
🥇C/C++语言100题练习专栏计划:目的:巩固练习C/C++语言,增强上机、动手实践能力,交流学习!
一、问题呈现
1.问题描述
Problem Description 有一个
n
×
m
n \times m
n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。
2.输入输出
Input
一行,两个正整数
n
,
m
n,m
n,m(
n
≤
5000
,
m
≤
5000
n \leq 5000,m \leq 5000
n≤5000,m≤5000)。
Output
一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。
3.测试样例
Sample Input
2 3
Sample Output
8 10
二、源码实现
#include<iostream>
using namespace std;
long long n,m,square,rectangle;
int main()
{
cin>>n>>m;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
{
if(i==j)
square+=(n-i)*(m-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) 如果对大家有帮助的话,希望大家能多多点赞+关注!这样我动力会更足哦! ?( ′・?・` )比心
|