vlambda博客
学习文章列表

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

题目描述

请用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;}