码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:tar   void   star   for   循环   class   ace   color   bsp   

 

  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;
}

 迷宫搜索类题目模板

 

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

标签:tar   void   star   for   循环   class   ace   color   bsp   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!