、组合问题(从M个不同字符中任取N个字符的所有组合)

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 97 收藏 0 点赞 0 评论 0

void find(char *source, char *result, int n) {

     if(n==1) {

         while(*source)

            printf(“%s%cn”, result, *source++);

     } else {

         int i, j;

         for(i=0; source[i] != 0; i++);

         for(j=0; result[j] != 0; j++);

         for(; i>=n; i–) {

              result[j] = *source++;

              result[j+1] = ‘’;

              find(source, result, n-1);

         }

     }

}

 

int main(int argc, char* argv[]) {

     int const n = 3;

     char *source = “ABCDE”, result[n+1] = {0};

     if(n>0 && strlen(source)>0 && n<=strlen(source))

         find(source, result, 3);

}

评论列表
文章目录