3 条题解

  • 0
    @ 2023-11-11 9:03:50
    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
    标签
    递交数
    214
    已通过
    70
    上传者