增量构造法 (白书P188)

#include<iostream>
#include<cstdio>
using namespace std;
int ans[6];
int n;

void dfs(int cnt)
{
	int i,j;
	for(i=0;i<cnt;i++) cout<<ans[i]<<" ";
	if(cnt) cout<<endl;
	int s=cnt?ans[cnt-1]+1:0;
	for(i=s;i<n;i++) {
		ans[cnt]=i;
		dfs(cnt+1);
	}
} 

int main()
{
	while(cin>>n) {
		dfs(0);
	}
	return 0;
}

你可能感兴趣的:(增量构造法 (白书P188))