/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http:// **
*****************************************************************/
#include <iostream>
using namespace std;
template<class T>
int DFS_FindNext(T arr[], int nMaxElm, int nDepth)
{
int n = nDepth-1;
for (++arr[n]; n>=0 && arr[n]>=nMaxElm; ++arr[--n]);
if (n<0) return 0;
for (int t = n+1; t<nDepth; ++t) arr[t] = arr[n];
return 1;
};
int main()
{
int n,m;
while(scanf("%d%d",&m,&n)==2)
{
int arr[20]={0}, outmap[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
do
{
for(int t=0; t<n; ++t)
{
printf(" %d", outmap[arr[t]]);
}
putchar('\n');
}while(DFS_FindNext(arr, m, n));
}
return 0;
}
是DFS,我想说写这个的确很容易,还有,我只准备了m在15以内,如果你要更大的你就自己加上吧
" border="0" />[color=white]
[[it] 本帖最后由 泉此方 于 2008-6-11 12:58 编辑 [/it]]