小标题的超链接为原题链接,点击跳转
1.1 枚举
// 枚举是一种暴力解决问题的手段,将所有情况全部判断一遍,一般用于数据量较低的题目,或者是一些思维题or填空题
卡片
题目

代码
// 卡片
#include <iostream>
using namespace std;
int num[10];
bool check(int x)
{
while(x)
{
int now = x%10;
if(num[now]) num[now]--;
else return false;
x/=10;
}
return true;
}
int main()
{
for(int i=0; i<10; i++)
num[i] = 2021;
int i = 1;
while(check(i++));
cout << i-2;
}
数的分解
题目

代码
// 数的分解
#include <iostream>
using namespace std;
bool check(int x)
{
while(x)
{
if(x%10 == 2 || x%10 == 4) return false;
x /= 10;
}
return true;
}
int main()
{
int cnt = 0;
for(int i=1; i<=2019; i++)if(check(i))
for(int j=i+1; j<=2019; j++)if(check(j))
{
int k = 2019 - i - j;
if(check(k) && k>j) cnt++;
}
cout << cnt;
}
文章介绍了两种使用枚举方法解决编程问题的实例。第一种是通过枚举所有可能的情况来检查数字的特定性质;第二种涉及分解数,寻找满足特定条件的数对和三元组。这两种方法展示了在数据规模较小时如何运用枚举法来求解问题。
3692

被折叠的 条评论
为什么被折叠?



