diff --git a/explelibx-mgrid/exple-mul.cpp b/explelibx-mgrid/exple-mul.cpp index 76a1186b289498a09db76d76bf1be23f457d80c3..dbf352e09ece795494d42f26616c284cbc8b0096 100644 --- a/explelibx-mgrid/exple-mul.cpp +++ b/explelibx-mgrid/exple-mul.cpp @@ -1,12 +1,20 @@ #include "exple-mul.h" +int sgn(int val) { + return (0 < val) - (val < 0); +} + +int abs(int a) { + return (a >= 0)? a : -a; +} + int exple::mul(int a, int b) { int result = 0; - for (int n = 0; n<b; n++) + for (int n = 0; n<abs(b); n++) { result += a; } - return result; + return result * sgn(b); }