蓝桥杯每日一题2023.11.14

题目描述

蓝桥杯每日一题2023.11.14_第1张图片

蓝桥杯每日一题2023.11.14_第2张图片

题目分析 

此题目的最终目标是将字母都填上数使等式符合条件,实际我们发现可以使用搜索将所有符合条件的进行判断(答案:29)

蓝桥杯每日一题2023.11.14_第3张图片

由于小数可能会出现错误故我们将其进行简单变化进行搜索

#include
using namespace std;
const int N = 2e5 + 10;
int x[N], ans;
bool v[N];
bool check(int x[])
{
	int a = x[1];
	int b = x[2];
	int c = x[3];
	int d = x[4] * 100 + x[5] * 10 + x[6];
	int e = x[7] * 100 + x[8] * 10 + x[9];
	if(a * c * e + b * e + c * d == 10 * c * e)return true;
	return false;
}
void dfs(int num)
{
	if(num > 9)
	{
		if(check(x))ans ++;
		return;
	}
	for(int i = 1; i <= 9; i ++)
	{
		if(!v[i])
		{
			v[i] = true;
			x[num] = i;
			dfs(num + 1);
			v[i] = false; 
		}
	}
}
int main()
{
	for(int i = 1; i <= 9; i ++)x[i] = i;
	dfs(1);
	cout << ans;
	return 0;
}

你可能感兴趣的:(蓝桥杯,算法,职场和发展)