// 输出任意多个序列的排列组合.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
#include <set>
#include <list>
using namespace std;
int iResult[10];
static int iNum = 0;
void solve( const vector< vector<int> >& vecData, int iCurrentLevel,const int &iMaxLevel)
{
if (iCurrentLevel == iMaxLevel)
{
for (int i = 0; i < iMaxLevel; ++i)
cout << iResult[i] << ' ';
cout << endl;
return;
}
for (int i = 0; i < vecData[iCurrentLevel].size(); ++i)
{
iResult[iCurrentLevel] = vecData[iCurrentLevel][i];
solve(vecData, iCurrentLevel + 1, iMaxLevel);
}
}
int main()
{
vector< vector<int> > vecData;
vector<int> vecTmp;
for (int i = 0; i < 6; ++i)
vecTmp.push_back(i);
vecData.push_back(vecTmp);
vecTmp.clear();
for (int i = 0; i < 1000; ++i)
vecTmp.push_back(i + 6);
vecData.push_back(vecTmp);
vecTmp.clear();
for (int i = 0; i < 100; ++i)
vecTmp.push_back(i + 200000);
vecData.push_back(vecTmp);
vecTmp.clear();
solve(vecData, 0, vecData.size());
return 0;
}
输出任意多个序列的排列组合
最新推荐文章于 2021-05-27 17:31:57 发布