# Add and Subtract Elements of two arrays

I don't know how easy or hard this is, but I am so confused and cannot think of it.

I have two arrays in reverse order.

So basically

Array a[]=321 ( ie the number is 123)
Array b[] = 9001 (i.e the number is 1009)

I want Array a[] + Array b[] (means 123 + 1009) = 1132

So I have to make a add method which accepts these two arrays as arguments.

Then I add those two numbers and return the value in string or an array, doesn't matter.

How do I do add and subtract method for this problem. As I have to make sure about the carry digit as if we add 9 and 3 its 12, so 1 is carry or so.

I hope you guys/gals understand my problem and if you have any questions then please let me know

LVL 11
###### Who is Participating?

x

Commented:
Hi write2mohit,

If you mean array of integer value :

int[] a={3,2,1};
int[] b={9,0,0,1};

int digit(int[] a,int n)
{
return ((n<0)||(n>=a.length))?0:a[n];
}

{
int ml=(b.length>a.length)?b.length:a.length; // maximum array length
int[] res=new int[ml+1]; // +1 to store the carry digit
int c=0; // carry
for (int i=0;i<res.length;i++)
{
res[i]=digit(a,i)+digit(b,i)+c;
c=res[i]/10;
res[i]%=10;
}
return res;
}

0

Commented:
You mean you want to return 1132?
0

Commented:
Sorry - must be getting tired - i see you do ;-)
0

Commented:
StringBuffer sb1 = new StringBuffer(arr1.length);
for(int i = 0;i < arr1.length;i++) {
sb1.insert(0, arr1[i]);
}

StringBuffer sb2 = new StringBuffer(arr2.length);
for(int i = 0;i < arr2.length;i++) {
sb2.insert(0, arr2[i]);
}

int sum = Integer.parseInt(sb1.toString()) + Integer.parseInt(sb2.toString());
0

Commented:
Of course you could arrange things so that you only need one loop, called twice
0

Commented:
unsigned substraction (a must be >= b) :

int[] substract(int[] a,int[] b)
{
int ml=(b.length>a.length)?b.length:a.length; // maximum array length
int[] res=new int[ml];
int c=0; // carry
for (int i=0;i<res.length;i++)
{
res[i]=digit(a,i)-digit(b,i)-c+10; // +10 for %
c=1-(res[i]/10);
res[i]%=10;
}
return res;
}
0

Commented:
>>If you mean array of integer value :

The code i already posted will work with an array of int or String
0

Author Commented:
Yes I tried everything

@CEHJ  your code works great... Thanks

@Webstorm - Your code is great too, I will use it for subtraction

Will assign points when I will be done

Thanks to everyone
0

Commented:
8-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.