From f8c22c3e0e0c1d3f138ce7cdf08b75fee059f724 Mon Sep 17 00:00:00 2001 From: vonopr <vonopr@ya.ru> Date: Fri, 15 Apr 2022 22:46:22 +0300 Subject: [PATCH] Fix mul() to work with negative arguments --- explelibx-mgrid/exple-mul.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/explelibx-mgrid/exple-mul.cpp b/explelibx-mgrid/exple-mul.cpp index 76a1186..dbf352e 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); } -- GitLab