From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- Bachelor/Prog1/Prakt3/prg1p3_5/main.cpp | 67 +++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Bachelor/Prog1/Prakt3/prg1p3_5/main.cpp (limited to 'Bachelor/Prog1/Prakt3/prg1p3_5/main.cpp') diff --git a/Bachelor/Prog1/Prakt3/prg1p3_5/main.cpp b/Bachelor/Prog1/Prakt3/prg1p3_5/main.cpp new file mode 100644 index 0000000..03c35e7 --- /dev/null +++ b/Bachelor/Prog1/Prakt3/prg1p3_5/main.cpp @@ -0,0 +1,67 @@ +// 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; + + } + +} \ No newline at end of file -- cgit v1.2.3