diff options
Diffstat (limited to 'usth/MATH2.3/4/sum-of-products.c')
-rw-r--r-- | usth/MATH2.3/4/sum-of-products.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/usth/MATH2.3/4/sum-of-products.c b/usth/MATH2.3/4/sum-of-products.c new file mode 100644 index 0000000..3fac72b --- /dev/null +++ b/usth/MATH2.3/4/sum-of-products.c @@ -0,0 +1,25 @@ +#include <stdio.h> + +int main() +{ + size_t n, f; + int b = 0; + + scanf("%zu %zu", &n, &f); + for (size_t i = 0; !(i >> n); ++i) { + if (!(f & 1 << i)) + continue; + if (b) + printf(" | "); + b = 1; + printf(i & 1 ? "x0" : "~x0"); + for (size_t j = 1; j < n; ++j) + if (i & 1 << j) + printf("&x%zu", j); + else + printf("&~x%zu", j); + } + putchar(10); + + return 0; +} |