深度优先搜索练习题:寻找算式

Posted 坤坤的编程世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度优先搜索练习题:寻找算式相关的知识,希望对你有一定的参考价值。

题目描述

请用1-9的9个数字组成一个成立的算式,例:124 + 659 = 783

请输出所有的算式。

输入样例

输出样例


输入


输出

请输出所有的算式。

答案:

#include <iostream>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;}


以上是关于深度优先搜索练习题:寻找算式的主要内容,如果未能解决你的问题,请参考以下文章

深度优先搜索DFS

算法导论22.3深度优先搜索 练习总结 (转载)

DFS(深度优先搜索)

深度优先搜索 codevs 1064 虫食算

深度优先搜索

图的广度、深度优先搜索和拓扑排序