美文网首页
算法-从m个数选择n个数(递归)

算法-从m个数选择n个数(递归)

作者: Fallune立白 | 来源:发表于2017-08-23 12:07 被阅读0次

    从m个数选择n个数(递归)

    比如从数组 11,22,33,44,55,66中选取两个数,分别是 11-22,11-33,11-44,11-55,11-66,22-33·······。也就是按照数组中从左到右先选取一个元素,在右边剩下的数组中按照同样顺序选择一个元素。

    代码如下:

    int Stack[100];

    int top = 0 ;

    void traverse(int* pData,int len,int num)

    {

         if(num == 0) return;

         for(int i = 0 ;i<len;i++)

        {

               stack[top++] = pData[i];//当前位置的元素入栈

               if(num == 1)

               {

                    for(int n = 0;n<top;n++)

                    {

                       printf("%d",stack[n]);

                   }

                    printf("\n");

                }

    else

    {

          traverse(pData+i+1,len-i-1,num-1);   

    }

    top--;

         }

    }

    相关文章

      网友评论

          本文标题:算法-从m个数选择n个数(递归)

          本文链接:https://www.haomeiwen.com/subject/npsddxtx.html