【深度优先搜索】练习题:寻找算式
题目描述
请用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;}
