小标题的超链接为原题链接,点击跳转
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;
}