排列

来源:互联网 发布:中科大网络教学平台 编辑:程序博客网 时间:2024/04/27 22:39
//用1,2,3......9组成三个数abc,def,ghi,每个数字恰好使用一次,//要求abc/def/ghi=1/2/3//我的方法,广度优先搜索#include <stdio.h>#include <stdlib.h>int dight[10];//从1到9,abcdefghiint book[10]={0};//标记1到9int number[3];//存abc,def,ghivoid dfs(int location){    if(location==10){        for(int i=0;i<=2;i++)            number[i]=dight[i*3+1]*100+dight[i*3+2]*10+dight[i*3+3];        if(number[0]*2==number[1]&&number[0]*3==number[2]){            printf("%d %d %d\n",number[0],number[1],number[2]);        }        return;    }        for(int i=1;i<=9;i++){            if(book[i]==0){                dight[location]=i;                book[i]=1;                dfs(location+1);                book[i]=0;            }        }    return;}int main(){    dfs(1);    return 0;}

1 0