Chào anh chị !
Em thắc mắc về tại sao thuật toán quay lui khi chạy lúc j = 5 in ra tại sao chương trình lại tiếp tục chạy ?
#include<iostream>
using namespace std;
void inputValue(int a[], int n)
{
for (int i = 1; i <= n; i++)
a[i] = i;
}
void printResult(int a[], int k)
{
for (int i = 1; i <= k; i++)
cout << a[i];
cout << endl;
}
void returnValue(int a[], int n, int k, int i)
{
for (int j = a[i - 1] + 1; j <= n - k + i; j++)
{
a[i] = j;
if (i == k)
printResult(a, k);
else
returnValue(a, n ,k , i+1);
}
}
int main()
{
int n, k, a[50];
cout << "Nhap n: ";
cin >> n;
inputValue(a, n);
cout << "Nhap k: ";
cin >> k;
a[0] = 0;
returnValue(a, n, k, 1);
system("pause");
}