算法从9个数中取出3个3位数其中两个3位数相加等于另一个3位数其中每位数字不能重复,即
__ __ __ + __ __ __ = __ __ __
/*
1.利用深搜思想
2.将9个位置看成9个盒子,分别放入不重复的数字,进而遍历所有可能性
*/
#include<iostream>
using namespace std;
int book[10] = {0};
int step = 1;
int str[10];
int total = 0;
int flag ;
void dfs(int step)
{
if(step == 10)
{
if((str[7]*100+str[8]*10+str[9]) ==
(str[1]*100+str[2]*10+str[3]) + (str[4]*100+str[5]*10+str[6]))
{
total ++;
if(flag == 8) //这里只是为了调整输出格式,不影响代码
{
cout << endl;
flag = 0;
}
cout << str[1]<<str[2]<<str[3] << '+' <<
str[4]<<str[5]<<str[6] << '=' <<
str[7] << str[8] << str[9]<<'\t';
flag ++;
return ;
}