深度优先搜索练习题:寻找算式
Posted 坤坤的编程世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度优先搜索练习题:寻找算式相关的知识,希望对你有一定的参考价值。
题目描述
请用1-9的9个数字组成一个成立的算式,例:124 + 659 = 783
请输出所有的算式。
输入样例
无
输出样例
无
输入
无
输出
请输出所有的算式。
答案:
using namespace std;
int a[10];
bool b[10];
void dfs(int step)
{
if (step == 10)
{
// 判断并输出
int x = a[1] * 100 + a[2] * 10 + a[3];
int y = a[4] * 100 + a[5] * 10 + a[6];
int z = a[7] * 100 + a[8] * 10 + a[9];
if (x + y == z)
{
cout << x << "+" << y << "=" << z << endl;
}
return;
}
//填数字
for (int i = 1; i <= 9; i++)
{
if (b[i] == 0)
{
a[step] = i;
b[i] = 1;
dfs(step + 1);
b[i] = 0;
}
}
}
int main()
{
dfs(1);
return 0;
}
以上是关于深度优先搜索练习题:寻找算式的主要内容,如果未能解决你的问题,请参考以下文章