首页 > 其他 > 详细

递归打印组合数、搜索模板

时间:2017-08-15 14:57:19      阅读:359      评论:0      收藏:0      [点我收藏+]

 

  1. //从后往前选取,选定位置i后,再在前i-1个里面选取m-1个。  
  2. //如 1 2 3 4 5 中选取 3 个  
  3. //1、选取5后,再在前4个里面选取2个,而前4个里面选取2个又是一个子问题,递归即可。  
  4. //2、如果不包含5,直接选定4,那么再在前3个里面选取2个,而前三个里面选取2个又是一个子问题,递归即可。  
  5. //3、如果也不包含4,直接选取3,那么再在前2个里面选取2个,刚好只有两个。  
  6. //纵向看,1、2、3刚好是一个for循环,初值为5,终值为m  
  7. //横向看,该问题为一个前i-1个中选m-1的递归。  
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
# define MAXN 100
int a[MAXN];
void comb(int m, int k)
{
    int i, j;
    if(k<1)
    {
        for (j=a[0]; j>0; j--)//a[a[0]],……,a[1]
                printf("%4d",a[j]);
        printf("\n");
        return ;
    }
    for (i = m; i >= k; i--)
    {
        a[k] = i;
        comb(i - 1, k - 1);
    }
}
int main()
{
    int k=4;
    int m=5;
    a[0] = k;
    comb(m,k);//a[0]保持输出的个数
    return 0;
}

 迷宫搜索类题目模板

 

递归打印组合数、搜索模板

原文:http://www.cnblogs.com/XDJjy/p/7364884.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!