01/10/2018, 17:34

Hỏi về thuật quay lui

Đề bài: Nhập vào n. Tin ra các xâu nhị phân có n chữ số.
Em làm thế này ạ:

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

void result(int a[], int n){
	for(int i = 1; i<= n; i++)
		cout<<a[i];
	cout<<endl;
}

void back(int i, int a[], int n){
	if(i==n) result(a, n);
	else{
		for(int j=0; j<=1; j++){
			a[i]=j;
			back(i+1, a, n);
		}
	}
}

int main(){
	int a[100], n;
	cin>>n;
	back(1, a, n);
}

Kết quả in ra bị sai. Mọi người có thể giải thích giúp em được không ạ?

*grab popcorn* viết 19:48 ngày 01/10/2018

Bạn sai ở dòng đầu tiên trong hàm back nhé.
Nhìn lại cách in của result rồi xem lại dòng đó, ngẫm nghĩ chút là ra.

Nguyễn Xuân Hậu viết 19:38 ngày 01/10/2018

Em cảm ơn ạ!!!

Bài liên quan
0