深度优先搜索(4)
例题三:子集(洛谷题)
题目:
输入n,输出集合[1,2,…,n]的所有子集(n<=8)。
输入:
数字n
输出:
集合[1,2,…,n]的所有子集。
输入样例:
3
输出样例:
[]
[3]
[2]
[2,3]
[1]
[1,3]
[1,2]
[1,2,3]
要求掌握(缺一不可):
基本语句;if语句;for语句;一维数组;函数;递归
思路:
输出所有子集也是一道经典搜索问题。
设s是一个[1,2,…,n]的子集。可以这样认为:集合[1,2,…,n]中的每个元素要么属于S,要么不属于S,只有这两种情况。
照例,首先申明变量:int n,size=0, s[20];size为子集元素个数,s为子集元素
读入:cin>>n;
接下来定义一个函数: