题目描述
今有 nn 位同学,可以从中选出任意名同学参加合唱。
请输出所有可能的选择方案。
输入格式
仅一行,一个正整数 nn。
输出格式
若干行,每行表示一个选择方案。
每一种选择方案用一个字符串表示,其中第 ii 位为 Y
则表示第 ii 名同学参加合唱;为 N
则表示不参加。
需要以字典序输出答案。
输入数据 1
3
Copy
输出数据 1
NNN
NNY
NYN
NYY
YNN
YNY
YYN
YYY
Copy
提示
对于 100%100% 的数据,保证 1≤n≤101≤n≤10。
代码
#include<bits/stdc++.h>
using namespace std;
int n,k,a[310];
void dfs(int pos){
if(pos==n+1){
for(int i=1;i<=n;i++){
if(a[i]==2)cout<<'Y';
else cout<<'N';
}
cout<<endl;
return;
}
for(int i=1;i<=2;i++){
a[pos]=i;
dfs(pos+1);
}
}
int main(){
cin>>n;
dfs(1);
return 0;
}