3 条题解
-
0
using namespace std; int a[100],book[100],n;//a为存放数的数组,book为手中有的牌,n为牌的数量 void dfs(int step){ if(step==n+1){//当排列的数超出了牌的数量时结束排列 for(int i=1;i<=n;i++) cout<<a[i];//输出此数 cout<<endl;//换行 return;//返回 } for(int i=1;i<=n;i++){ if(book[i]==0){//判断这个数是否还在 a[step]=i;//如果不在放入a数组中 book[i]=1;//将此张牌设为已放入 dfs(step+1);//继续排列 book[i]=0;//将此牌收回 } } return;//返回 } int main(){ cin>>n;//输入牌的数量 dfs(1);//函数运算 return 0; }
信息
- ID
- 1305
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 222
- 已通过
- 73
- 上传者