You have to create a function calcType, which receives 3 arguments: 2 numbers, and the result of an unknown operation performed on them (also a number).
Based on those 3 values you have to return a string, that describes which operation was used to get the given result.
The possible return strings are: "addition", "subtraction", "multiplication", "division".
In case of division you should expect that the result of the operation is obtained by using / operator on the input values
Example:
calcT_type(1, 2, 3)
--> 1 ? 2 = 3
--> "addition"
Tests
calc_type(1, 2, 3)
calc_type(10, 5, 5)
calc_type(10, 4, 40)
calc_type(9, 5, 1.8)
Good luck!
This challenge comes from ridokai on CodeWars. Thank you to CodeWars, who has licensed redistribution of this challenge under the 2-Clause BSD License!
Want to propose a challenge idea for a future post? Email yo+challenge@dev.to with your suggestions!
Top comments (8)
JavaScript
stupidly golfed:
reasonable:
optimized:
Guess what, flow control is expensive! Inlining saves the day, and
case
is number one.Both of these are slower, despite not having to calculate the "expensive" division operation:
How about:
and :
Or one of these number is 0
there's only
x + 0 == x - 0 (== x)
x * 1 == x / 1 (== x)
2 + 2 == 2 * 2
4 - 2 == 4 / 2
(reverse)Right? What did you mean with
You are correct, I mean:
If we're talking IEEE754-like floats, there's also NaN :v
NaN + a == NaN - b == NaN * c == NaN / d == NaN % e == f + NaN == g - NaN == h * NaN == i / NaN == j % NaN (== NaN)
inf + a == inf - b == inf * c == inf / d == f + inf == h * inf (== inf)
-inf + a == -inf - b == -inf * c == -inf / d == f + -inf == h * -inf (== -inf)
inf - inf == inf / inf (== NaN)
Python:
Python:
Can the first two numbers be negative? fractional? +/- inf? NaN?