मध्यम 0 हल किए गए 0% स्वीकृति

Exact Fraction Arithmetic

Perform fraction operations and return a reduced fraction.

Represent a fraction as [numerator, denominator]. Apply operation to first and second: add, subtract, multiply, or divide. For absolute, use only first. For power, raise first to the integer exponent and ignore second. Return lowest terms with a positive denominator. Normalize zero to [0, 1]. All divisions and negative powers in valid inputs are defined.

Implement rational_arithmetic(operation, first, second, exponent).

Input

operation: The operation name.

first: Two integers representing the first fraction.

second: Two integers representing the second fraction; use [0, 1] when unused.

exponent: The exponent for power; use 0 for other operations.

Output

Return [numerator, denominator] in reduced form with a positive denominator.

सीमाएँ

operation is add, subtract, multiply, divide, absolute, or power. Both fraction components have magnitude at most 100; denominators are nonzero. −6 ≤ exponent ≤ 6. For divide, second has nonzero numerator. For a negative power, first has nonzero numerator. The 0th power is [1, 1], including 0⁰ by this task’s convention. Values fit signed 64-bit.

उदाहरण

उदाहरण 1
इनपुट:
first = [1, 6]
second = [1, 4]
exponent = 0
operation = "add"

अपेक्षित आउटपुट:
expected = [5, 12]
इनपुट:
std::vector<long long> first = {1, 6};
std::vector<long long> second = {1, 4};
long long exponent = 0;
std::string operation = "add";

अपेक्षित आउटपुट:
std::vector<long long> expected = {5, 12};
इनपुट:
long[] first = new long[] {1, 6};
long[] second = new long[] {1, 4};
long exponent = 0;
string operation = "add";

अपेक्षित आउटपुट:
long[] expected = new long[] {5, 12};

व्याख्या

1/6 + 1/4 = 2/12 + 3/12 = 5/12, already reduced.

उदाहरण 2
इनपुट:
first = [2, 3]
second = [0, 1]
exponent = -2
operation = "power"

अपेक्षित आउटपुट:
expected = [9, 4]
इनपुट:
std::vector<long long> first = {2, 3};
std::vector<long long> second = {0, 1};
long long exponent = -2;
std::string operation = "power";

अपेक्षित आउटपुट:
std::vector<long long> expected = {9, 4};
इनपुट:
long[] first = new long[] {2, 3};
long[] second = new long[] {0, 1};
long exponent = -2;
string operation = "power";

अपेक्षित आउटपुट:
long[] expected = new long[] {9, 4};

व्याख्या

A negative exponent inverts the fraction: (2/3)⁻² = (3/2)² = 9/4.

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।