P1008 递归顺序不对,求助大佬
查看原帖
P1008 递归顺序不对,求助大佬
993389
huangwei14楼主2024/8/1 21:53

我写了个递归,枚举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;
}
2024/8/1 21:53
加载中...