将1到9这九个数字分成3个三位数a,b,c,要求第2个三位数是第1个三位数的两倍,第3个三位数是第1个三位数的三倍。用程序求解怎么分。
#include<bits/stdc++.h>
using namespace std;
int a[10]={1,2,3,4,5,6,7,8,9};
void dfs(int id){
if(id>=9){
int x,y,z;
x=a[0]*100+a[1]*10+a[2];
y=a[3]*100+a[4]*10+a[5];
z=a[6]*100+a[7]*10+a[8];
if(x*2==y && x*3==z){
cout<<x<<" "<<y<<" "<<z<<endl;
}
return;
}else{
int j;
for(int i =id;i<9;i++){
j=a[i];a[i]=a[id];a[id]=j;
dfs(id+1);
j=a[i];a[i]=a[id];a[id]=j;
}
}
}
int main(){
ios::sync_with_stdio(0);
dfs(0);
return 0;
}