समस्या
मूल (अंग्रेज़ी) दिखाएँएक भिन्न को [अंश, हर] के रूप में दर्शाएँ। पहले और दूसरे भिन्न पर ऑपरेशन लागू करें: जोड़, घटाव, गुणा या भाग। absolute के लिए केवल पहले का उपयोग करें। power के लिए पहले को पूर्णांक घात तक उठाएँ और दूसरे को अनदेखा करें। परिणाम को न्यूनतम रूप में सकारात्मक हर के साथ लौटाएँ। शून्य को [0, 1] के रूप में सामान्यीकृत करें। सभी भाग और ऋणात्मक घात मान्य इनपुट में परिभाषित हैं।
rational_arithmetic(operation, first, second, exponent) लागू करें।
इनपुट
operation: ऑपरेशन का नाम।
first: पहले भिन्न को दर्शाने वाले दो पूर्णांक।
second: दूसरे भिन्न को दर्शाने वाले दो पूर्णांक; जब उपयोग न हो तो [0, 1] दें।
exponent: power के लिए घात; अन्य ऑपरेशनों के लिए 0 दें।
आउटपुट
सरलीकृत रूप में [अंश, हर] लौटाएँ, जिसमें हर सकारात्मक हो।
सीमाएँ
operation add, subtract, multiply, divide, absolute या power में से एक है। दोनों भिन्न के घटकों का परिमाण अधिकतम 100 है; हर कभी शून्य नहीं है। −6 ≤ exponent ≤ 6। divide के लिए, दूसरे का अंश शून्य नहीं है। ऋणात्मक घात के लिए, पहले का अंश शून्य नहीं है। 0वीं घात [1, 1] है, इस कार्य के अनुसार 0⁰ भी। सभी मान signed 64-bit में समा सकते हैं।
उदाहरण
इनपुट:
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, पहले से ही सरलीकृत।
इनपुट:
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};
व्याख्या
ऋणात्मक घात भिन्न को पलट देता है: (2/3)⁻² = (3/2)² = 9/4।
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।