题目描述
设a、b、c 均是0 到9 之间的数字,abc、bcc 是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c 的值。
输入描述:
无。
输出描述:
每行输出3个数,分别表示abc的值,用一个空格隔开。
/*
1.本题可以利用深搜思想
2.把a、b、c看成三个盒子,每次放进一个数字,三个盒子数字不能重复
*/
#include<iostream>
using namespace std;
int book[10] = {0};
int step = 1;
int str[3];
void dfs(int step)
{
if(step == 4)
{
if(532 == (str[1]*100+str[2]*10+str[3])+(str[2]*100+str[3]*10+str[3]))
{
cout << str[1]<<' '<<str[2]<<' '<<str[3]<<endl;
return ;
}
return ;
}
for(int i = 0;i < 10;i++)
{
if(book[i] == 0)
{
str[step] = i;
book[i] = 1;
dfs(step+1);
book[i] = 0;
}
}
}
int main()
{
dfs(1);
return 0;
}