Untitled

 avatar
unknown
plain_text
2 years ago
992 B
3
Indexable
#include <iostream>

using namespace std;

int N;
int arr[10];
int tinh[10];
int ans;
int index;
int sum;

int xetDau(int num)
{
	if(num < 0)
		return -1;
	if(num > 0)
		return 1;
}

void backTracking(int k, int id)
{
	if(k == N ){
		sum = 0;
		for(int i = 1; i <= id; i++){
			sum += tinh[i];
		}
		if(sum == 0)
			ans++;
		return;
	}
	for(int i = 0; i < 3; i++){
		if(i == 1){
			tinh[id+1] = 0 - arr[k+1];
			backTracking(k+1, id+1);
		}
		if(i==2){
			tinh[id+1] = arr[k+1];
			backTracking(k+1, id+1);
		}
		if(i==0){
			tinh[id] = tinh[id]*10 + xetDau(tinh[id]) * arr[k+1];
			backTracking(k+1, id);
			tinh[id]  = tinh[id]/10;
		}
	}
}

int main()
{
//	freopen("input.txt", "r", stdin);
	int T;
	cin >> T;
	for(int i = 1; i < 10; i++){
		arr[i] = i;
	}
	for(int tc = 1; tc <= T; tc++){
		cin >> N;
		ans = 0;
		index = 1;
		tinh[index] = 1;
		backTracking(1, 1);
		cout << "#" << tc << " " << ans << endl;
	}
	return 0;
}
Editor is loading...