求助
查看原帖
求助
286135
Dajian楼主2020/11/5 20:08
#include<iostream>
#include<cmath>
#include<string>
#include<sstream>
using namespace std;
#define MAX 30

int x[MAX];


void f(int k, string str, int start, int end,int len) {
	if (k == 0) {
		cout << str.substr(0,str.size()-1) << endl;
		
		return;
	}
	for (int i = start;i <= end;i++) {
		stringstream ss;
		ss << x[i];
		str += ss.str() + " ";
		f(k - 1, str, i + 1, end, str.size());
		str = str.substr(0, len);
	}
}

int main() {
	int n, r;
	cin >> n >> r;
	for (int i = 0;i < n;i++) {
		x[i] = i + 1;
	}
	f(r, "", 0, n - 1,0);
	return 0;
}
                             

用递归写的,运行案例也没问题,自己试了几个也没发现问题。但是只过了最后一个。。。

2020/11/5 20:08
加载中...