// Programmieren 1, Praktikum 3, Aufgabe 5 // Sven Eisenhauer // 17.11.2004 // // file: main.cpp // // purpose: egypt multiplication // // #include using std::cin; using std::cout; using std::endl; int multIterative(int,int); void multRecursive(int,int, int &); int main() { int number1, number2, erg; cout << "1st number: "; cin >> number1; cout << "2nd number: "; cin >> number2; cout << "Product: " << multIterative(number1,number2) << endl; multRecursive(number1,number2,erg); cout << "Product: " << erg << endl; return 0; } int multIterative(int a,int b) { int product=0; while (b>0) { if (0 != b%2) product+=a; a = a << 1; b = b >> 1; } return product; } void multRecursive(int a,int b, int &product) { int x,y; if (b<=1) product=a; else { x=a<<1; y=b>>1; multRecursive(x,y,product); if (0!=b%2) product+=a; } }