侧边栏壁纸
  • 累计撰写 192 篇文章
  • 累计创建 2 个标签
  • 累计收到 87 条评论

【题解】n个数取出r个数排列

Allen Best
2023-07-15 / 0 评论 / 0 点赞 / 38 阅读 / 391 字
温馨提示:
本文最后更新于 2023-07-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
#include<bits/stdc++.h>
using namespace std;
int a[10],vis[10];//vis shuzu 
int n,r;
void dfs(int x){//现在处理第x个位置上的数
	if(x>r){//终点 
		for(int i =1;i<=r;i++){
			cout<<a[i]<<" ";
		}
		cout<<endl;
		return ;
	} 
	for(int i=1;i<=n;i++){//一共有n种可执行方案 
		if(vis[i]==0){//判断当前方案是否可行 
			a[x]=i;//记录当前使用的数 
			vis[i]=1;//标记该数字已经使用 
			dfs(x+1);
			vis[i]=0;//回溯 
		}
	}
	
} 
int main(){
	cin>>n>>r;
	dfs(1);//从第一位开始 
	return 0;
}
0

评论区