@fasked
4971 / 2551 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
|
15.03.2012, 11:23
|
|

Сообщение от go
так сделал
Обновил:
C++ | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #include <algorithm>
#include <iostream>
#include <iterator>
#include <array>
bool foo(const std::array<bool, 3> values)
{
return ((!values[0] && values[2]) || (values[0] && !values[1]));
}
int main()
{
std::array<bool, 3> values;
for (std::size_t i = 0; i < (1U << values.size()); ++i)
{
for (std::size_t j = 0; j < values.size(); ++j)
values[j] = i & (1U << j);
std::copy(std::begin(values), std::end(values), std::ostream_iterator<bool>(std::cout, " | "));
std::cout << foo(values) << std::endl;
}
} |
|
http://liveworkspace.org/code/0ca42e3ebbad457c2412b5f621754904
Код
0 | 0 | 0 | 0
1 | 0 | 0 | 1
0 | 1 | 0 | 0
1 | 1 | 0 | 0
0 | 0 | 1 | 1
1 | 0 | 1 | 1
0 | 1 | 1 | 1
1 | 1 | 1 | 0
Добавлено через 5 минут
Для четырех соответственно меняем размер массива и добавляем перегруженную функцию:
C++ | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #include <algorithm>
#include <iostream>
#include <iterator>
#include <array>
bool foo(const std::array<bool, 3> values)
{
return ((!values[0] && values[2]) || (values[0] && !values[1]));
}
bool foo(const std::array<bool, 4> values)
{
return ((!values[0] && values[2]) || (values[1] && !values[3]));
}
int main()
{
std::array<bool, 4> values;
for (std::size_t i = 0; i < (1U << values.size()); ++i)
{
for (std::size_t j = 0; j < values.size(); ++j)
values[j] = i & (1U << j);
std::copy(std::begin(values), std::end(values), std::ostream_iterator<bool>(std::cout, " | "));
std::cout << foo(values) << std::endl;
}
} |
|
Код
0 | 0 | 0 | 0 | 0
1 | 0 | 0 | 0 | 0
0 | 1 | 0 | 0 | 1
1 | 1 | 0 | 0 | 1
0 | 0 | 1 | 0 | 1
1 | 0 | 1 | 0 | 0
0 | 1 | 1 | 0 | 1
1 | 1 | 1 | 0 | 1
0 | 0 | 0 | 1 | 0
1 | 0 | 0 | 1 | 0
0 | 1 | 0 | 1 | 0
1 | 1 | 0 | 1 | 0
0 | 0 | 1 | 1 | 1
1 | 0 | 1 | 1 | 0
0 | 1 | 1 | 1 | 1
1 | 1 | 1 | 1 | 0
1
|