递归 但是只能过2和3,求优化,谢谢
查看原帖
递归 但是只能过2和3,求优化,谢谢
1188358
Yosuga_sora楼主2024/1/20 15:22
#include <stdio.h>
#include <stdbool.h>
#define max 1000
int a[max]={0};
int b[max]={0};
bool flag[max]={false};
int n,m;
void fun(int index){
	if(index==n+1){
		m--;
		if(m==-1){
		    for(int i=1;i<=n;i++){
		    	printf("%d ",b[i]);
	    	}
		}
	}
	for(int i=0;i<n;i++){
		if(flag[i]==false){
			b[index]=a[i];
			flag[i]=true;
			fun(index+1);
			flag[i]=false;
		}
	}
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	fun(1);
	return 0;
}
2024/1/20 15:22
加载中...