Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main {
- public static void main(String[] args) {
- int a=7;
- int b=3;
- int result=multiply(a,b);
- System.out.println("result: "+result);
- }
- //сделал эту функцию, т.к. при умножении отрицательных чисел надо брать обратное
- //если ставить просто знак -, то это умножение на -1
- //а нам нельзя умножать
- private static int negate(int a){
- int add=-1;
- if(a<0){
- add=1;
- }
- int result=0;
- while (result+a!=0){
- result +=add;
- }
- return result;
- }
- private static int multiply(Integer x,Integer y){
- boolean negateY=false;
- boolean negateX=false;
- if(x<0){
- negateX=true;
- x=negate(x);
- }
- if(y<0){
- negateY=true;
- y=negate(y);
- }
- int result=0;
- if(x<y){
- int[] swapped =swap(x,y);
- x=swapped[0];
- y=swapped[1];
- }
- for(int i=0;i<y;i++){
- result+=x;
- }
- if(negateX^negateY){
- result=negate(result);
- }
- return result;
- }
- private static int[] swap(Integer x, Integer y){
- return new int[]{y,x};
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement