I am looking for a clear explanation to my question (NOT looking for code), but if a bit of code helps to explain yourself, then please do.. thank you 🙂
Question:
-using Java
-Main class asks user for 2 integer inputs, then places them into 2 arraylists, of type integer. Each digit is broken up and stored in its own index, so it is its own “element”, so to speak.
For example, with my code right now, it goes something like this:
“Please enter an integer:”
688
“Please enter another integer:”
349
At this point now, internally, I have stored the input as 2 arraylists, that look like this:
ArrayList1: [6, 8, 8]
ArrayList2: [3, 4, 9]
Now, lets say I want to perform some addition, such as ArrayList1 + ArrayList2.
I’ll probably go ahead and create a temporary ‘result’ arraylist, then move that answer over to arraylist1 when my calculation is complete.
But the part I am having trouble with, is coming up with a systematic clear way to add the arraylists together. Keep in mind that this example uses an arraylist which represents an integer of length 3, but this could be anything. I could, for example, have an arraylist with 50 elements, such as [2, 4, 4, 3, 7, 3, 6, 3,………….] which could represent a huge number in the trillions, etc.
Think about how you would do grade-school addition. You’d start up by lining up the numbers like this:
Then, you’d add the last two digits to get
And you’d have a carry of 1. You then add the next two digits, plus the carry:
Now you have carry 0, so you can add the last digit and the missing digit to get
The general pattern looks like this: starting from the last digit of each array, add the last two numbers together to get a sum and a carry. Write the units digit of the sum into the resulting array, then propagate the carry to the next column. Then add the values in that column (plus the carry) together, and repeat this process across the digits. Once you have exhausted all of the digits in one of the numbers, continue doing the sum, but pretend that there’s a 0 as the missing digit. Once you have processed all the digits, you will have the answer you’re looking for.
Hope this helps!