一个组合问题解决的很巧妙

/**
  * 组合问题,经典算法
  * 问题描述:找出从自然数1,2,3.....n中任取r个数的组合.例如n=5,r=3的所有组合为
  * (1)543 (2)542 (3)541 (4)532 (5)531 (6)521 (7)432 (8)431 (9)421 (10)321

  *  利用递归思想将求从n个数中去r个数的组合转化为求n-1自然数内r-1个数的组合。
  * @param m
  * @param k
  */
 
 public static void comb(int m,int k)
 {
  
  for(int i = m; i>=k; i--)
  {
   a[k] = i;
   if(k>1)
    comb(i-1,k-1);
   else
   {
    for(int j = a[0];j>0;j--)
    {
     System.out.print(a[j]);
    }
    System.out.printf("\n");
   }
  }
 }

<!-- 日志内容 结束 --><!-- 日志来源 开始 --><!-- 日志来源 结束 --><!-- 日志信息 开始 -->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值