2015年7月17日星期五

"BackTrack" Practice

列出所有0~4的排列組合

#include <stdio.h>
#include <stdlib.h>
int* A;
int sol[5];
void backtrack(int n){
    if(n==5){
        for(int i=0;i<n;i++)printf("%d ",sol[i]);
        printf("\n");
        return ;
    }
    for(int i=0;i<5;i++){
        int ok=1;
        for(int j=0;j<n;j++){
            if(sol[j]==i)ok=0;
        }
        if(ok){
            sol[n]=i;
            backtrack(n+1);
        }
    }
}

int main(){
    backtrack(0);
    return 0;
}

沒有留言: