mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-26 02:00:27 +08:00
58 lines
2.9 KiB
HTML
58 lines
2.9 KiB
HTML
|
<p>设计一个类 <code>Calculator</code> 。该类应提供加法、减法、乘法、除法和乘方等数学运算功能。同时,它还应支持连续操作的方法链式调用。<code>Calculator</code> 类的构造函数应接受一个数字作为 <code>result</code> 的初始值。</p>
|
|||
|
|
|||
|
<p>你的 <code>Calculator</code> 类应包含以下方法:</p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li><code>add</code> - 将给定的数字 <code>value</code> 与 <code>result</code> 相加,并返回更新后的 <code>Calculator</code> 对象。</li>
|
|||
|
<li><code>subtract</code> - 从 <code>result</code> 中减去给定的数字 <code>value</code> ,并返回更新后的 <code>Calculator</code> 对象。</li>
|
|||
|
<li><code>multiply</code> - 将 <code>result</code> 乘以给定的数字 <code>value</code> ,并返回更新后的 <code>Calculator</code> 对象。</li>
|
|||
|
<li><code>divide</code> - 将 <code>result</code> 除以给定的数字 <code>value</code> ,并返回更新后的 <code>Calculator</code> 对象。如果传入的值为 <code>0</code> ,则抛出错误 <code>"Division by zero is not allowed"</code> 。</li>
|
|||
|
<li><code>power</code> - 将 <code>result</code> 的值乘以给定的数字 <code>value</code> ,并返回更新后的 <code>Calculator</code> 对象。</li>
|
|||
|
<li><code>getResult</code> - 返回 <code>result</code> 的值。</li>
|
|||
|
</ul>
|
|||
|
|
|||
|
<p>结果与实际结果相差在 <code>10<sup>-5</sup></code><sup> </sup>范围内的解被认为是正确的。</p>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
<p><b>示例 1:</b></p>
|
|||
|
|
|||
|
<pre>
|
|||
|
<b>输入:</b>actions = ["Calculator", "add", "subtract", "getResult"], values = [10, 5, 7]
|
|||
|
<b>输出:</b>8
|
|||
|
<b>解释:</b>
|
|||
|
new Calculator(10).add(5).subtract(7).getResult() // 10 + 5 - 7 = 8
|
|||
|
</pre>
|
|||
|
|
|||
|
<p><strong class="example">示例 2:</strong></p>
|
|||
|
|
|||
|
<pre>
|
|||
|
<b>输入:</b>actions = ["Calculator", "multiply", "power", "getResult"], values = [2, 5, 2]
|
|||
|
<b>输出:</b>100
|
|||
|
<b>解释:</b>
|
|||
|
new Calculator(2).multiply(5).power(2).getResult() // (2 * 5) ^ 2 = 100
|
|||
|
</pre>
|
|||
|
|
|||
|
<p><strong class="example">示例 3:</strong></p>
|
|||
|
|
|||
|
<pre>
|
|||
|
<b>输入:</b>actions = ["Calculator", "divide", "getResult"], values = [20, 0]
|
|||
|
<b>输出:</b>"Division by zero is not allowed"
|
|||
|
<b>解释:</b>
|
|||
|
new Calculator(20).divide(0).getResult() // 20 / 0
|
|||
|
|
|||
|
由于不能除以零,因此应抛出错误。
|
|||
|
</pre>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
<p><strong>提示:</strong></p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li><code>2 <= actions.length <= 2 * 10<sup>4</sup></code></li>
|
|||
|
<li><code>1 <= values.length <= 2 * 10<sup>4</sup></code><code> - 1</code></li>
|
|||
|
<li><code>actions[i] 是 "Calculator", "add", "subtract", "multiply", "divide", "power", 和 "getResult" 其中的元素</code></li>
|
|||
|
<li><code><font face="monospace">最后一个操作总是 "getResult"</font></code></li>
|
|||
|
<li><code><font face="monospace">values </font>是一个数字的 JSON 数组</code></li>
|
|||
|
</ul>
|