Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198367
  • 博文数量: 264
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 2740
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-03 13:25
文章分类

全部博文(264)

文章存档

2011年(1)

2009年(263)

我的朋友

分类: C/C++

2009-06-09 14:05:14

本文在C++下递归实现数字的组合,具体代码如下: 

#include

void Combin(int m,int n,int a)
{
    if(m == n){
        if(a>0)printf("%d",a);
        while(n > 0) printf("%d",n--);
        printf("\n");
        return;
    }
    else if(0 == n){
        printf("%d ",a);
        return;
    }
    Combin(m-1,n-1,a*10+m);
    Combin(m-1,n,a);
}

int main()
{
    Combin(9,5,0);
}

  代码返回:

98765 98764 98763 98762 98761
98754 98753 98752 98751
98743 98742 98741
98732 98731
98721
98654 98653 98652 98651
98643 98642 98641
98632 98631
98621

  由于本段代码测试数据太长,就不多输出了,自己试下吧!

阅读(399) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~