我写了个递归,枚举9个数字,几个数是对的,但顺序不对,从1开始枚举的,我的这些数为什么没按照字典序。
#include<bits/stdc++.h>
using namespace std;
bool vis[15];
int num[15];
void dfs(int x){
if(x==10){
int sum1=num[1]+num[2]*10+num[3]*100,sum2=num[4]+num[5]*10+num[6]*100,sum3=num[7]+num[8]*10+num[9]*100;
int k=(sum1+sum2+sum3)/6;
if(k==sum1 && k*2==sum2 && k*3==sum3){
cout<<sum1<<" "<<sum2<<" "<<sum3<<endl;
}
return;
}
for(int i=1;i<=9;i++){
if(!vis[i]){
vis[i]=1;
num[x]=i;
dfs(x+1);
vis[i]=0;
}
}
}
int main(){
dfs(1);
return 0;
}