abc 点击打开链接
题目描述
设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。
输入描述:
题目没有任何输入。
输出描述:
请输出所有满足题目条件的a、b、c的值。 a、b、c之间用空格隔开。 每个输出占一行。
答案
3 2 1
思路分析
DFS填数问题。
AC代码
#include <iostream>
using namespace std;
const int nmax=10;
int num[nmax];
int vis[nmax];
int ans[nmax];
void dfs(int n){
if(n>=3){
int tmp1=100*num[0]+10*num[1]+1*num[2];
int tmp2=100*num[1]+10*num[2]+1*num[2];
if(tmp1+tmp2==532){
cout<<num[0]<<" "<<num[1]<<" "<<num[2]<<endl;
}
}
else{//不足3个数
for(int i=0;i<=9;i++){//这3层要试10个数啊
if(vis[i]!=1){//若这个数字没用过
num[n]=i;
vis[i]=1;
dfs(n+1);
vis[i]=0;
}
}
}
}
int main(int argc, char** argv) {
dfs(0);
return 0;
}