Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<math.h>
- using namespace std;
- int nr_digits(long int nr)
- {
- int count=0;
- while(nr!=0)
- {
- count++;
- nr=nr/10;
- }
- return count;
- }
- int min(int x, int y)
- {
- if(x>y)
- {
- return y;
- }
- else
- {
- return x;
- }
- }
- long int multiply(long int x, long int y)
- {
- if(x>9 && y>9)
- {
- int len_x = nr_digits(x);
- int len_y = nr_digits(y);
- int len = min(x,y);
- int m = len/2;
- long int xs = x/(long int)pow(10,m);
- long int xd = x%(long int)pow(10,m);
- long int ys = y/(long int)pow(10,m);
- long int yd = y%(long int)pow(10,m);
- long int p1 = multiply(xs,ys);
- long int p2 = multiply(xd,yd);
- long int p3 = multiply(xs,yd);
- long int p4 = multiply(xd,ys);
- return (p1 * (long int)pow(10,2*m) + p2 +(p3 + p4) * pow(10,m));
- }
- else
- {
- return x*y;
- }
- }
- int main(void)
- {
- cout<<multiply(12,22) <<"\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement