算法-写出组合数的全部可能,c++描述

昨天晚上写的。

#include <iostream>
#include <vector>
#include <string>

using namespace std;

vector<bool> result(100,0);

void Go(const string &str,int n,int m,int pos)
{
 if(m==n)
 {
  for(int i=0;i!=str.length();i++)
   if(result[i])
    cout<<str[i];
  cout<<endl;
 }
 if(pos<=str.length()-1&&m<n)
 {
  Go(str,n,m,pos+1);
  result[pos]=true;
  Go(str,n,m+1,pos+1);
  result[pos]=false;
 }

}

int main()
{
 string str;
 cin>>str;
 Go(str,3,0,0);
 return 0;
}

Leave a Reply

Your email address will not be published. Required fields are marked *