将1到9这九个数字分成3个三位数a,b,c
程序员文章站
2024-02-02 13:42:10
...
将1到9这九个数字分成3个三位数a,b,c,每个数字恰好出现一次,要求a????️c=1:2:3。要求按照"a b c"的格式输出所有解, 每行一个解。
#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;
}