Problem Statement
Create a class Abacus that contains a method add that is given a String[] original and a number val and that returns a String[] showing the abacus after val has been added to the original abacus.
Both in original and in the return, the String[] will contain exactly 6 elements representing the 6 threads in order from top thread to bottom thread. Each element will contain a lowercase 'o' to represent each bead and three consecutive hyphens '-' to indicate the empty part of the thread. Each element will thus contain exactly 12 characters.
Definition
- Class:
- Abacus
- Method:
- add
- Parameters:
- String[], int
- Returns:
- String[]
- Method signature:
- String[] add(String[] original, int val)
- (be sure your method is public)
Constraints
- original will contain exactly 6 elements.
- Each element of original will contain exactly 12 characters, 9 lowercase 'o's and 3 consecutive '-'s.
- val will be between 0 and 999,999 inclusive.
- val added to the original abacus will result in a value that can be shown on the abacus.
Examples
{"ooo---oooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "oo---ooooooo", "---ooooooooo"}
5
Returns: {"ooo---oooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "o---oooooooo", "ooooo---oooo" }
When we add 5 to the original, it is necessary to "carry" 1 to the next thread up. This shows the arithmetic 699979 + 5 = 699984
{"ooo---oooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "oo---ooooooo", "---ooooooooo"}
21
Returns: {"oo---ooooooo", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
This shows 699979 + 21 = 700000
{"ooo---oooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "ooooo---oooo", "---ooooooooo"}
7123
Returns: {"oo---ooooooo", "ooooooooo---", "oo---ooooooo", "ooooooooo---", "oo---ooooooo", "ooooooo---oo" }
{"ooo---oooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "oo---ooooooo", "---ooooooooo"}
99
Returns: {"oo---ooooooo", "ooooooooo---", "ooooooooo---", "ooooooooo---", "oo---ooooooo", "o---oooooooo" }
{"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo"}
100000
Returns: {"oooooooo---o", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo" }
{"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---"}
900000
Returns: {"---ooooooooo", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
{"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---"}
0
Returns: {"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
{"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo"}
909020
Returns: {"---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo" }
{"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo"}
809030
Returns: {"---ooooooooo", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "---ooooooooo" }
{"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo"}
6
Returns: {"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "o---oooooooo", "oooo---ooooo" }
{"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo"}
123456
Returns: {"ooooooo---oo", "oooooooo---o", "ooooo---oooo", "ooooo---oooo", "oooooo---ooo", "oooo---ooooo" }
{"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo"}
818273
Returns: {"---ooooooooo", "ooooooooo---", "---ooooooooo", "ooooooo---oo", "oooo---ooooo", "ooooooo---oo" }
{"oooo---ooooo", "oooooooo---o", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "ooooooooo---"}
410670
Returns: {"---ooooooooo", "ooooooo---oo", "oooooooo---o", "ooo---oooooo", "ooooo---oooo", "ooooooooo---" }
{"oooo---ooooo", "oooooooo---o", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "ooooooooo---"}
489020
Returns: {"---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "ooooooooo---" }
{"oooooo---ooo", "---ooooooooo", "oooooooo---o", "ooooooo---oo", "ooo---oooooo", "oooooo---ooo"}
78899
Returns: {"ooooo---oooo", "oo---ooooooo", "ooooooooo---", "oooooooo---o", "ooo---oooooo", "ooooooo---oo" }
{"ooooo---oooo", "---ooooooooo", "o---oooooooo", "ooooooo---oo", "ooooo---oooo", "ooooo---oooo"}
196155
Returns: {"ooo---oooooo", "---ooooooooo", "ooooo---oooo", "oooooo---ooo", "---ooooooooo", "---ooooooooo" }
{"ooooooooo---", "oooooo---ooo", "ooooooooo---", "ooo---oooooo", "oooooooo---o", "oooooo---ooo"}
83121
Returns: {"oooooooo---o", "oooooooo---o", "oooooo---ooo", "oo---ooooooo", "oooooo---ooo", "ooooo---oooo" }
{"---ooooooooo", "o---oooooooo", "oooo---ooooo", "oooooooo---o", "ooooo---oooo", "oooooooo---o"}
1115
Returns: {"---ooooooooo", "o---oooooooo", "ooo---oooooo", "ooooooo---oo", "oooo---ooooo", "ooo---oooooo" }
{"ooo---oooooo", "---ooooooooo", "ooo---oooooo", "ooooooooo---", "ooooooo---oo", "oooooo---ooo"}
95774
Returns: {"oo---ooooooo", "---ooooooooo", "oooooooo---o", "oo---ooooooo", "---ooooooooo", "oo---ooooooo" }
{"ooooooo---oo", "oooooooo---o", "ooooooooo---", "oooo---ooooo", "oooooooo---o", "ooooooo---oo"}
164954
Returns: {"oooooo---ooo", "oo---ooooooo", "oooo---ooooo", "ooooo---oooo", "ooo---oooooo", "ooo---oooooo" }
{"ooo---oooooo", "oooo---ooooo", "ooooooo---oo", "ooooooooo---", "oooo---ooooo", "---ooooooooo"}
166825
Returns: {"o---oooooooo", "oooooooo---o", "o---oooooooo", "o---oooooooo", "o---oooooooo", "ooooo---oooo" }
{"---ooooooooo", "oooooooo---o", "ooooooo---oo", "oooo---ooooo", "oooooo---ooo", "ooooooo---oo"}
81413
Returns: {"---ooooooooo", "---ooooooooo", "oooooo---ooo", "---ooooooooo", "ooooo---oooo", "oooo---ooooo" }
{"ooooo---oooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "o---oooooooo", "oooooooo---o"}
224375
Returns: {"ooo---oooooo", "oooooo---ooo", "ooooo---oooo", "oooooooo---o", "oooo---ooooo", "ooo---oooooo" }
{"o---oooooooo", "ooo---oooooo", "oooooooo---o", "oooo---ooooo", "oooooooo---o", "oooo---ooooo"}
59650
Returns: {"---ooooooooo", "ooooooo---oo", "oooooooo---o", "oooooooo---o", "ooo---oooooo", "oooo---ooooo" }
{"ooooo---oooo", "oo---ooooooo", "ooo---oooooo", "ooooo---oooo", "oo---ooooooo", "ooooooo---oo"}
177148
Returns: {"ooo---oooooo", "oooo---ooooo", "oooooo---ooo", "ooo---oooooo", "ooooooo---oo", "ooooooooo---" }
{"ooo---oooooo", "ooooooo---oo", "ooooooooo---", "oo---ooooooo", "ooooooo---oo", "---ooooooooo"}
307549
Returns: {"---ooooooooo", "ooooooo---oo", "o---oooooooo", "ooooooo---oo", "oo---ooooooo", "o---oooooooo" }
{"---ooooooooo", "ooooooo---oo", "o---oooooooo", "o---oooooooo", "o---oooooooo", "oo---ooooooo"}
25251
Returns: {"---ooooooooo", "oooo---ooooo", "ooooo---oooo", "oooooooo---o", "oooooo---ooo", "o---oooooooo" }
{"ooo---oooooo", "oooooo---ooo", "oooooo---ooo", "oo---ooooooo", "oo---ooooooo", "ooooo---oooo"}
33146
Returns: {"ooo---oooooo", "ooo---oooooo", "ooo---oooooo", "---ooooooooo", "ooooooo---oo", "ooooooooo---" }
{"oooo---ooooo", "ooooooo---oo", "oooo---ooooo", "---ooooooooo", "o---oooooooo", "o---oooooooo"}
78439
Returns: {"ooo---oooooo", "ooooooooo---", "ooooo---oooo", "ooooo---oooo", "ooooooo---oo", "oo---ooooooo" }
{"oooooooo---o", "oo---ooooooo", "oo---ooooooo", "oooo---ooooo", "oooooo---ooo", "oooooooo---o"}
797330
Returns: {"---ooooooooo", "oo---ooooooo", "ooooo---oooo", "o---oooooooo", "ooo---oooooo", "oooooooo---o" }
{"ooo---oooooo", "ooooo---oooo", "oo---ooooooo", "ooooo---oooo", "oooo---ooooo", "ooooooooo---"}
25802
Returns: {"ooo---oooooo", "oo---ooooooo", "oooooo---ooo", "ooooooo---oo", "oooo---ooooo", "ooooooo---oo" }
{"---ooooooooo", "ooooooooo---", "oooooooo---o", "ooo---oooooo", "---ooooooooo", "oo---ooooooo"}
64485
Returns: {"---ooooooooo", "ooo---oooooo", "ooo---oooooo", "oooooooo---o", "o---oooooooo", "ooooooo---oo" }
{"o---oooooooo", "oooooooo---o", "oo---ooooooo", "oooo---ooooo", "ooooooo---oo", "ooo---oooooo"}
150262
Returns: {"---ooooooooo", "ooo---oooooo", "oo---ooooooo", "oo---ooooooo", "o---oooooooo", "o---oooooooo" }
{"ooo---oooooo", "ooo---oooooo", "oo---ooooooo", "---ooooooooo", "ooooo---oooo", "oooooooo---o"}
38359
Returns: {"oo---ooooooo", "ooooooooo---", "ooo---oooooo", "oooooo---ooo", "ooooooooo---", "ooooooooo---" }
{"ooo---oooooo", "ooooo---oooo", "oooooooo---o", "ooooooo---oo", "ooooo---oooo", "o---oooooooo"}
139357
Returns: {"oo---ooooooo", "o---oooooooo", "ooooooooo---", "ooo---oooooo", "ooooooooo---", "oooo---ooooo" }
{"oooo---ooooo", "ooo---oooooo", "ooooo---oooo", "oo---ooooooo", "ooo---oooooo", "oo---ooooooo"}
180951
Returns: {"oo---ooooooo", "ooooo---oooo", "oooo---ooooo", "oo---ooooooo", "oooooooo---o", "o---oooooooo" }
{"ooo---oooooo", "ooo---oooooo", "ooooooo---oo", "o---oooooooo", "ooooooo---oo", "ooooo---oooo"}
265695
Returns: {"---ooooooooo", "ooooooo---oo", "o---oooooooo", "oooo---ooooo", "oooooooo---o", "---ooooooooo" }
{"oooooo---ooo", "ooooooooo---", "ooo---oooooo", "oooooo---ooo", "oooo---ooooo", "ooooo---oooo"}
290279
Returns: {"oooo---ooooo", "---ooooooooo", "ooo---oooooo", "ooo---oooooo", "oooooo---ooo", "oooooo---ooo" }
{"---ooooooooo", "oooo---ooooo", "oooo---ooooo", "---ooooooooo", "oooooooo---o", "oooo---ooooo"}
32592
Returns: {"---ooooooooo", "o---oooooooo", "o---oooooooo", "oooo---ooooo", "ooooooooo---", "oo---ooooooo" }
{"oooo---ooooo", "ooooo---oooo", "oo---ooooooo", "ooo---oooooo", "oooooo---ooo", "o---oooooooo"}
42257
Returns: {"oooo---ooooo", "o---oooooooo", "---ooooooooo", "o---oooooooo", "---ooooooooo", "oooo---ooooo" }
{"oo---ooooooo", "oooooooo---o", "oooo---ooooo", "ooo---oooooo", "ooooooooo---", "ooooo---oooo"}
211041
Returns: {"---ooooooooo", "ooooooo---oo", "ooo---oooooo", "ooo---oooooo", "ooooo---oooo", "oooo---ooooo" }
{"oooo---ooooo", "---ooooooooo", "oo---ooooooo", "ooooo---oooo", "oooo---ooooo", "oo---ooooooo"}
166877
Returns: {"oo---ooooooo", "ooo---oooooo", "ooooo---oooo", "oooooo---ooo", "oooooo---ooo", "ooooo---oooo" }
{"o---oooooooo", "oooo---ooooo", "ooooooooo---", "oo---ooooooo", "o---oooooooo", "oooooo---ooo"}
135393
Returns: {"---ooooooooo", "o---oooooooo", "ooo---oooooo", "oooooooo---o", "oo---ooooooo", "ooo---oooooo" }
{"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo"}
99999
Returns: {"oooooooo---o", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "o---oooooooo" }
{"o---oooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo" }
1
Returns: {"---ooooooooo", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
{"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "oooooooo---o" }
1
Returns: {"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooo---oo" }
{"o---oooooooo", "oo---ooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo" }
5
Returns: {"o---oooooooo", "o---oooooooo", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooo---oooo" }
{"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
12
Returns: {"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "oooooooo---o", "ooooooo---oo" }
{"---ooooooooo", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
0
Returns: {"---ooooooooo", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
{"---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "o---oooooooo" }
1
Returns: {"---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo" }
{"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
1
Returns: {"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "oooooooo---o" }
{"ooooo---oooo", "ooooo---oooo", "ooooo---oooo", "ooooo---oooo", "ooooo---oooo", "ooooo---oooo" }
1
Returns: {"ooooo---oooo", "ooooo---oooo", "ooooo---oooo", "ooooo---oooo", "ooooo---oooo", "oooo---ooooo" }
{"ooo---oooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "oo---ooooooo", "---ooooooooo" }
5
Returns: {"ooo---oooooo", "---ooooooooo", "---ooooooooo", "---ooooooooo", "o---oooooooo", "ooooo---oooo" }
{"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo" }
99
Returns: {"ooooooooo---", "---ooooooooo", "oooooooo---o", "ooooooooo---", "oo---ooooooo", "o---oooooooo" }
{"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo" }
1
Returns: {"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "o---oooooooo", "ooooooooo---" }
{"ooooooooo---", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo" }
100000
Returns: {"oooooooo---o", "---ooooooooo", "ooooooooo---", "---ooooooooo", "oo---ooooooo", "---ooooooooo" }
{"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
3
Returns: {"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "oooooo---ooo" }
{"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
0
Returns: {"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
{"ooooooooo---", "ooooo---oooo", "oooooo---ooo", "oo---ooooooo", "---ooooooooo", "ooo---oooooo" }
431
Returns: {"ooooooooo---", "ooooo---oooo", "ooooo---oooo", "ooooooo---oo", "ooooooo---oo", "oo---ooooooo" }
{"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
56
Returns: {"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "oooo---ooooo", "ooo---oooooo" }
{"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---" }
5
Returns: {"ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "ooooooooo---", "oooo---ooooo" }