using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Enter 12 integer numbers");
var Arr = new List<int>();
for (int i = 0; i < 12; i++)
{
Arr.Add(int.Parse(Console.ReadLine()));
}
Console.WriteLine($"Кол-во нулевых элементов: {Arr.Where(p => p == 0).Count()}");
Console.WriteLine($"Positive numbers product: {Arr.Where(p => p > 0).Aggregate(BigInteger.One, (p, q) => p * q)}");
Console.ReadKey();
}
}
Объяснение:
Добавьте ссылку на сборку System.Numerics в вашем проекте для корректной работы программы. Иначе будет ругаться на несуществующее пространство System.Numerics
XWZY
Объяснение:
Для начала придётся восстановить всю таблицу истинности этой функции (см таблицу)
В ней ИСТИНА соответствует логической единице, ЛОЖЬ - логическому нулю. Правее столбца с результатами - промежуточные вычисления.
В итоге видим, что всего три строчки в полученной таблице имеют логическую единицу в результате, как и в условии задачи.
Остаётся среди этих трёх строк найти те, что в условии задачи.
Первой строкой исходной задачи может быть только зелёная, так как только в ней есть два логических нуля. Остальные строки исходной таблицы заполняем единицами, поскольку иного варианта быть не может и ищем соответствие в полученной таблице истинности.
Очевидно, что столбец где все логические единицы принадлежит переменной w.
Где в первой строке ноль, а остальные значения 1 это X.
Где в первой строке, а потом 1 и 0 - Z
И остаётся столбец Y.
P.S. Мне уже надоело решать подобные задачи. В приложении файл Excel, который можно подредактировать под любую подобную.