作业介绍

递归深入

组合

using namespace std;
int a[10001];
int n,r;

void f(int x){
	if(x>r){
		for(int i=1;i<=r;i++) printf("%3d",a[i]);
		cout << endl;
		return;
	}
	for(int i=a[x-1]+1;i<=n;i++){
		a[x]=i;
		f(x+1);
	}
}

int main(){
	cin >> n >> r;
	f(1);
	
	return 0;
}

全排列

#include<bits/stdc++.h>
using namespace std;

int a[21];
int n;
int flag[21];

void f(int x){
    if(x>n){
        for(int i=1; i<=n; i++) printf("%5d", a[i]);
        printf("\n");
        return;
    }
    for(int i=1; i<=n; i++){
        if(flag[i]==0) {
            flag[i] = 1;
            a[x] = i;
            f(x+1);
            flag[i] = 0;
        }
    }
}

int main(){
    scanf("%d", &n);
    f(1);
    return 0;
}
状态
已结束
题目
3
开始时间
2023-10-21 0:00
截止时间
2023-10-29 23:59
可延期
24 小时