diff --git a/boolean_algebra/or_gate.py b/boolean_algebra/or_gate.py index 0fd4e5a5dc18..89e0272d97db 100644 --- a/boolean_algebra/or_gate.py +++ b/boolean_algebra/or_gate.py @@ -29,6 +29,30 @@ def or_gate(input_1: int, input_2: int) -> int: return int((input_1, input_2).count(1) != 0) +def n_input_or_gate(inputs: list[int]) -> int: + """ + Calculate OR of a list of input values + >>> n_input_or_gate([0, 0, 0, 0, 0]) + 0 + >>> n_input_or_gate([0, 1, 0, 0, 0]) + 1 + >>> n_input_or_gate([1, 1, 1, 1, 1]) + 1 + + >>> n_input_or_gate([0, 1]) + 1 + + >>> n_input_or_gate([1]) + Traceback (most recent call last): + ... + ValueError: Input list must contain at least two elements + """ + if len(inputs) < 2: + raise ValueError("Input list must contain at least two elements") + + return int(any(inputs)) + + if __name__ == "__main__": import doctest