zoukankan      html  css  js  c++  java
  • n取的r的组合数问题

    下午在逛BBS的时候,发现一个小小的算法问题,觉得有趣,便花了点时间简单的写了一下(时间是挤出来的嘛:)
    网友的问题如下:

    我可能没说清楚,
    比如有1,2,3,4,5,6,7这7个数字:
    他们的任意6个数字的组合只能有下面几种情况:
    1 2 3 4 5 6
    1 3 4 5 6 7
    1 2 4 5 6 7
    1 2 3 5 6 7
    1 2 3 4 6 7
    1 2 3 4 5 7
    2 3 4 5 6 7
    对吧~
    但是数字越多出先的组合也越多~所以想做个程序把这些组合给找出来~


    这问题用递归即可解决, 代码如下
    public class CodeForComb
     { 
            static int [] CombData=new int[10];

                 static void Main()
                                              {  
                                         a[0]=6;//打印6个数
                                                   comb(7,6); //按7中取6个不同的组合数

                                                }


      static void comb(int m,int k)
      {
               int i,j;
               for( i=m;i>=k;i--)
                   {       
                        CombData[k]=i;
                        if(k>1)
                         comb(i-1,k-1);//还有其他组合数 递归

                        else  //有一组组合数了
                            {
                             for(j=a[0];j>0;j--)
                                 {
                                      Console.Write(CombData[j]);
                                   }
                             Console.WriteLine();
         
                            }//else
               
                    }//for
         } //comb
     }//class





  • 相关阅读:
    信息系统开发平台OpenExpressApp - 支持列表分组(Group)
    WPF - 轻量级的开源XAML编辑器Kaxaml
    工作流 - 架构描述
    工作流 - 技术备忘录
    开源 - 轻型的表达式引擎 Flee
    敏捷实践(收集)
    人生就是......
    信息系统开发平台OpenExpressApp - 应用模型ApplicationModel
    软件观点 - 平台分类:系统平台、开发平台和开放平台
    软件产品线工程方法 - BAPO之架构(Architecture)
  • 原文地址:https://www.cnblogs.com/supercode/p/176377.html
Copyright © 2011-2022 走看看