天天看点

将1到9这九个数字分成3个三位数a,b,c

将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;
}
           

继续阅读