Browse Source

multiplication using lookup table

remotes/origin/multiplication
fdai7930 11 months ago
parent
commit
d35e733799
  1. 16
      src/multiplication.c
  2. 1
      src/multiplication.h

16
src/multiplication.c

@ -64,5 +64,21 @@ int multiply_by_even(int num, int factor) {
return (num >> 1) << (factor + 1); return (num >> 1) << (factor + 1);
} }
int multiply_using_lookup_table(int num1, int num2) {
int lookup_table[10][10] = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
{0, 2, 4, 6, 8, 10, 12, 14, 16, 18},
{0, 3, 6, 9, 12, 15, 18, 21, 24, 27},
{0, 4, 8, 12, 16, 20, 24, 28, 32, 36},
{0, 5, 10, 15, 20, 25, 30, 35, 40, 45},
{0, 6, 12, 18, 24, 30, 36, 42, 48, 54},
{0, 7, 14, 21, 28, 35, 42, 49, 56, 63},
{0, 8, 16, 24, 32, 40, 48, 56, 64, 72},
{0, 9, 18, 27, 36, 45, 54, 63, 72, 81}
};
return lookup_table[num1][num2];
}

1
src/multiplication.h

@ -12,6 +12,7 @@ int multiply_string(const char* str, int factor);
int multiply_by_sum(int num1, int num2); int multiply_by_sum(int num1, int num2);
int multiply_using_two_complements(int num1, int num2); int multiply_using_two_complements(int num1, int num2);
int multiply_by_even(int num, int factor); int multiply_by_even(int num, int factor);
int multiply_using_lookup_table(int num1, int num2);
#endif // MULTIPLICATION_H #endif // MULTIPLICATION_H

Loading…
Cancel
Save