分书问题

来源:互联网 发布:淘宝一千零一夜第二季 编辑:程序博客网 时间:2024/05/16 15:19
#include <stdio.h>const int like[5][5] = {    {0, 0, 1, 1, 0},    {1, 1, 0, 0, 1},    {0, 1, 1, 0, 1},    {0, 0, 0, 1, 0},    {0, 1, 0, 0, 1}};int take[5], book[5] = {0, 0, 0, 0, 0};void _try(int i) {    static int n = 0;    int j, k;    for (j = 0; j <= 4; j++) {        if (like[i][j] > 0 && book[j] == 0) {            take[i] = j;            book[j] = 1;            if (i == 4) {                n++;                printf("No.%d scheme\n", n);                for (k = 0; k <= 4; k++)                    printf("book %d is given to %c\n", take[k], (char)k + 'A');                putchar('\n');            }            else {                _try(i + 1);            }            book[j] = 0;        }    }}int main() {    _try(0);    return 0;}

0 0