10pts求助
查看原帖
10pts求助
972183
MESSI_楼主2024/3/12 19:23
#include<bits/stdc++.h>
using namespace std;
int n,r,a[10],b[10];//B数组为赋值数组 
void dfspai(int k)//表示排到了第几个数,且当前数还未排 
{
	if(k>n){//如果是目标节点,表示已完成。输出 
		for(int i=1;i<=r;i++) cout <<"   "<< b[i];
		cout << endl;
		return;
	}
	for(int i=1;i<=n;i++)
	{
		if(!a[i]&&i>b[k-1])
		{
			a[i]=1;
			b[k]=i;
			dfspai(k+1);
			a[i]=0;
			b[k]=0;
		}
	} 
}
int main(void){
	cin >> n >> r;
	dfspai(1);
	return 0;
}
2024/3/12 19:23
加载中...