Untitled
unknown
plain_text
3 years ago
1.6 kB
7
Indexable
#include <iostream>
using namespace std;
int arr[20];
int N;
int cnt = 0;
bool checkZero()
{
// voi arr[t] = -1 la cong , -2 la tru , -3 la nhan
// thuc hien theo dung tinh tu nhan chia truoc cong tru sau
// thuc hien nhan trc
int ar[20] = { 0 };
for (int i = 1; i < 2 * N; i++)
{
ar[i] = arr[i];
}
for (int i = 2; i < 2 * N; i = i + 2)
{
if (ar[i] == -3)
{
int so = ar[i -1];
int t = i;
while (ar[t] == -3)
{
so = so * 10 + ar[t +1];
t += 2;
}
ar[i - 1] = so;
for (int k = i; k <= t - 1 ; k++)
{
ar[k] = 0;
}
i = t;
}
}
// thuc hien cong tru
int sum = ar[1];
for (int i = 2; i < 2 * N; i = i + 2)
{
int t = i - 1;
if (ar[i] == -1)
{
sum = sum + ar[i + 1];
}
else if (ar[i] == -2)
{
sum = sum - ar[i + 1];
}
}
if (sum == 0)
return true;
else
return false;
}
void findZero(int k)
{
if (k == 2 * N)
{
if (checkZero() == true)
{
cnt++;
}
return;
}
for (int i = 0; i < 3; i++)
{
if (i == 0)
{
arr[k] = -3;
findZero(k + 2);
}
else if (i == 1)
{
arr[k] = -2;
findZero(k + 2);
}
else
{
arr[k] = -1;
findZero(k + 2);
}
}
}
int main()
{
int testcase;
cin >> testcase;
for (int tc = 1; tc <= testcase; tc++)
{
cin >> N;
for (int i = 0; i < 20; i++)
{
arr[i] = 0;
}
int t = 1;
for (int i = 1; i <= N; i++)
{
arr[t] = i;
t += 2;
}
cnt = 0;
findZero(2);
cout << "#" << tc << " " << cnt << endl;
}
}Editor is loading...