Definisi interatif untuk kasus perkalian dua buah integer adalah sebagai berikut :
Definisi : (iteratif)
a x b =
1. a + a +...+ a (b kali), untuk b > 0
2. (-a) + (-a) +...+ (-a) (b kali), untuk b < 0
Dalam definisi diatas dapat dilihat bahwa perulangan selalu dipertahankan bernilai positif, terutama untuk kasus b yang negatif, yaitu dengan cara mengalihkan nilai negatif ke a. Implementasi definisi tersebut menggunakan fungsi sebagai berikut :
#include <iostream.h>
#include <math.h>
int kali_interatif(int a, int b)
{
int i, hasil = 0; //nilai awal
for (i = 1; i <= abs(b); i++)
hasil = hasil + a;
if (b < 0) return - hasil;
else return hasil;
}
void main()
{
cout << "3x(-5) = " << kali_iteratif(3, -5) << endl;
}
Fungsi absolut (abs) digunakan untuk perulangan yang selalu positif (7). Fungsi abs prototip fungsinya berada pada math.h (2). Sementara bila b bernilai negatif dari perhitungan semula untuk b positif (9). Dalam implementasi menggunakan fungsi rekursif, nilai awal pada kasus iteratif digunakan sebagai kasus basis (penyetop). Sementara dua kasus yang ada pada definisi interatif digunakan dan dimodifikasi untuk kasus rekursif. Definisi rekursif dari kasus perkalian dua integer adalah sebagai berikut:
Definisi : (rekursif)
a x b =
1. 0, untuk b = 0
2. a + (a x (b-1)), untuk b > 0
3. -a + (a x (b + 1)), untuk b < 0
Implementasi deari rekursif diatas adalah sebagai berikut :
#include <iostream.h>
int kali_rekursif(int a, int b)
{
if (b==0)
return 0;
else if (b > 0)
return a + kali_rekursif(a, b - 1);
else
return (-a) + kali_rekursif(a, b+1);
}
void main()
{
cout << " 3 x(-5) = " << kali_rekursif(3, -5) << endl;
}