求助,为什么把cnt>r的for循环的界限n改成base就不对了
查看原帖
求助,为什么把cnt>r的for循环的界限n改成base就不对了
136379
FumengTuT楼主2024/3/28 20:27
#include <iostream>
#include <iomanip>
using namespace std;

int n, r, st[21] = {0};

void dfs(int cnt, int base)
{
	if (cnt > r)
	{
		for (int i = 1; i <= n; i++)
			if (st[i]) cout << setw(3) << st[i];
			
		cout << endl;
		return;
	}
	
	for (int i = base; i <= n; i++)
	{
		if (!st[i])
		{
			st[i] = i;
			dfs(cnt + 1, i + 1);
			st[i] = 0;
		}
	}
}

int main()
{
	cin >> n >> r;
	dfs(1, 1);
		
	return 0;
}
2024/3/28 20:27
加载中...