1 public static String[] twoOperatorAndOperator(int num1, int num2) {
2 double first = generate(num1, num2);
3 double secound = generate(num1, num2);
4 double third = generate(num1, num2);
5 System.out.println(num1+" num1");
6 System.out.println(num2+" num2");
7 int zero = 0;
8 zero=generate(1, 28);
9 System.out.println(zero + " zero");
10 switch (zero) {
11 case 1:
12 double result = first + secound + third;
13 String[] addAndAdd = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
14 String.format("%.0f", third), String.format("%.0f", result), String.valueOf(1), "+", "+", null,
15 null, null, null };
16 return addAndAdd;
17 case 2:
18 if (first + secound >= third) {
19 double result2 = first + secound - third;
20 String[] addAndSub = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
21 String.format("%.0f", third), String.format("%.0f", result2), String.valueOf(2), "+", "-", null,
22 null, null, null };
23 return addAndSub;
24 } else {
25 double result2 = third + secound - first;
26 String[] addAndSub = new String[] { String.format("%.0f", third), String.format("%.0f", secound),
27 String.format("%.0f", first), String.format("%.0f", result2), String.valueOf(2), "+", "-", null,
28 null, null, null };
29 return addAndSub;
30 }
31 case 3:
32 double result3 = first + secound * third;
33 String[] addAndMul = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
34 String.format("%.0f", third), String.format("%.0f", result3), String.valueOf(3), "+", "*", null,
35 null, null, null };
36 return addAndMul;
37 case 4:
38 if (third != 0) {
39 double result4 = first + secound / third;
40 String[] addAndDiv = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
41 String.format("%.0f", third), String.format("%.2f", result4), String.valueOf(4), "+", "/", null,
42 null, null, null };
43 return addAndDiv;
44 } else {
45 twoOperatorAndOperator(num1, num2);
46 }
47 case 5:
48 if (first - secound + third >= 0) {
49 double result5 = first - secound + third;
50 String[] SubAndAdd = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
51 String.format("%.0f", third), String.format("%.0f", result5), String.valueOf(5), "-", "+", null,
52 null, null, null };
53 return SubAndAdd;
54 } else {
55 double result5 = secound - first - third;
56 String[] SubAndAdd = new String[] { String.format("%.0f", secound), String.format("%.0f", first),
57 String.format("%.0f", third), String.format("%.0f", result5), String.valueOf(5), "-", "-", null,
58 null, null, null };
59 return SubAndAdd;
60 }
61 case 6:
62 if (first - secound - third >= 0) {
63 double result6 = first - secound - third;
64 String[] SubAndSub = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
65 String.format("%.0f", third), String.format("%.0f", result6), String.valueOf(6), "-", "-", null,
66 null, null, null };
67 return SubAndSub;
68 } else {
69 double result6 = third + secound - first;
70 String[] SubAndSub = new String[] { String.format("%.0f", third), String.format("%.0f", secound),
71 String.format("%.0f", first), String.format("%.0f", result6), String.valueOf(6), "+", "-", null,
72 null, null, null };
73 return SubAndSub;
74 }
75 case 7:
76 if (first - secound * third > 0) {
77 double result7 = first - secound * third;
78 String[] SubAndMul = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
79 String.format("%.0f", third), String.format("%.0f", result7), String.valueOf(7), "-", "*", null,
80 null, null, null };
81 return SubAndMul;
82 } else {
83 double result7 = third * secound - first;
84 String[] SubAndMul = new String[] { String.format("%.0f", third), String.format("%.0f", secound),
85 String.format("%.0f", first), String.format("%.0f", result7), String.valueOf(7), "*", "-", null,
86 null, null, null };
87 return SubAndMul;
88 }
89
90 case 8:
91 if (third != 0) {
92 if (first - secound / third > 0) {
93 double result8 = first - secound / third;
94 String[] SubAndDiv = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
95 String.format("%.0f", third), String.format("%.2f", result8), String.valueOf(8), "-", "/",
96 null, null, null, null };
97 return SubAndDiv;
98 } else {
99 double result8 = secound / third - first;
100 String[] SubAndDiv = new String[] { String.format("%.0f", secound), String.format("%.0f", third),
101 String.format("%.0f", first), String.format("%.2f", result8), String.valueOf(8), "/", "-",
102 null, null, null, null };
103 return SubAndDiv;
104 }
105 } else {
106 twoOperatorAndOperator(num1, num2);
107 }
108 case 9:
109 double result9 = first * secound + third;
110 String[] MulAndAdd = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
111 String.format("%.0f", third), String.format("%.0f", result9), String.valueOf(9), "*", "+", null,
112 null, null, null };
113 return MulAndAdd;
114 case 10:
115 if (first * secound - third > 0) {
116 double result10 = first * secound - third;
117 String[] MulAndSub = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
118 String.format("%.0f", third), String.format("%.0f", result10), String.valueOf(10), "*", "-",
119 null, null, null, null };
120 return MulAndSub;
121 } else {
122 double result10 = third - first * secound;
123 String[] MulAndSub = new String[] { String.format("%.0f", third), String.format("%.0f", first),
124 String.format("%.0f", secound), String.format("%.0f", result10), String.valueOf(10), "-", "*",
125 null, null, null, null };
126 return MulAndSub;
127 }
128
129 case 11:
130 double result11 = first * secound * third;
131 String[] MulAndMul = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
132 String.format("%.0f", third), String.format("%.0f", result11), String.valueOf(11), "*", "*", null,
133 null, null, null };
134 return MulAndMul;
135 case 12:
136 if (third != 0) {
137 double result12 = first * secound / third;
138 String[] MulAndDiv = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
139 String.format("%.0f", third), String.format("%.2f", result12), String.valueOf(12), "*", "/",
140 null, null, null, null };
141 return MulAndDiv;
142 } else {
143 twoOperatorAndOperator(num1, num2);
144 }
145 case 13:
146 if (secound != 0) {
147 double result13 = first / secound + third;
148 String[] DivAndAdd = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
149 String.format("%.0f", third), String.format("%.2f", result13), String.valueOf(13), "/", "+",
150 null, null, null, null };
151 return DivAndAdd;
152 } else {
153 twoOperatorAndOperator(num1, num2);
154 }
155 case 14:
156 if (secound > 0) {
157 if (first / secound - third > 0) {
158 double result14 = first / secound - third;
159 String[] DivAndSub = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
160 String.format("%.0f", third), String.format("%.2f", result14), String.valueOf(14), "/", "-",
161 null, null, null, null };
162 return DivAndSub;
163 } else {
164 double result14 = third - first / secound;
165 String[] DivAndSub = new String[] { String.format("%.0f", third), String.format("%.0f", first),
166 String.format("%.0f", secound), String.format("%.2f", result14), String.valueOf(14), "-",
167 "/", null, null, null, null };
168 return DivAndSub;
169 }
170 } else {
171 twoOperatorAndOperator(num1, num2);
172 }
173 case 15:
174 if (secound != 0) {
175 double result15 = first / secound * third;
176 String[] DivAndMul = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
177 String.format("%.0f", third), String.format("%.2f", result15), String.valueOf(15), "/", "*",
178 null, null, null, null };
179 return DivAndMul;
180 } else {
181 twoOperatorAndOperator(num1, num2);
182 }
183 case 16:
184 if (secound != 0 && third != 0) {
185 double result16 = first / secound / third;
186 String[] DivAndDiv = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
187 String.format("%.0f", third), String.format("%.2f", result16), String.valueOf(16), "/", "/",
188 null, null, null, null };
189 return DivAndDiv;
190 } else {
191 twoOperatorAndOperator(num1, num2);
192 }
193 case 17:
194 double result17 = (first + secound) * third;
195 String[] AddAndMul2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
196 String.format("%.0f", third), String.format("%.0f", result17), String.valueOf(17), "+", "*", "(",
197 null, ")", null };
198 return AddAndMul2;
199 case 18:
200 if (third != 0) {
201 double result18 = (first + secound) / third;
202 String[] AddAndDiv2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
203 String.format("%.0f", third), String.format("%.2f", result18), String.valueOf(18), "+", "/",
204 "(", null, ")", null };
205 return AddAndDiv2;
206 } else {
207 twoOperatorAndOperator(num1, num2);
208 }
209 case 19:
210 if (first > secound) {
211 double result19 = (first - secound) * third;
212 String[] SubAndMul2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
213 String.format("%.0f", third), String.format("%.0f", result19), String.valueOf(19), "-", "*",
214 "(", null, ")", null };
215 return SubAndMul2;
216 } else {
217 double result19 = (secound - first) * third;
218 String[] SubAndMul2 = new String[] { String.format("%.0f", secound), String.format("%.0f", first),
219 String.format("%.0f", third), String.format("%.0f", result19), String.valueOf(19), "-", "*",
220 "(", null, ")", null };
221 return SubAndMul2;
222 }
223 case 20:
224 if (third != 0) {
225 double result20 = (first + secound) / third;
226 String[] SubAndDiv2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
227 String.format("%.0f", third), String.format("%.2f", result20), String.valueOf(20), "+", "/",
228 "(", null, ")", null };
229 return SubAndDiv2;
230 } else {
231 twoOperatorAndOperator(num1, num2);
232 }
233 case 21:
234 double result21 = first * (secound + third);
235 String[] MulAndAdd2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
236 String.format("%.0f", third), String.format("%.0f", result21), String.valueOf(21), "*", "+", null,
237 "(", null, ")" };
238 return MulAndAdd2;
239 case 22:
240 if (secound > third) {
241 double result22 = first * (secound - third);
242 String[] MulAndSub2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
243 String.format("%.0f", third), String.format("%.2f", result22), String.valueOf(22), "*", "-",
244 null, "(", null, ")" };
245 return MulAndSub2;
246 } else {
247 double result22 = first * (third - secound);
248 String[] MulAndSub2 = new String[] { String.format("%.0f", first), String.format("%.0f", third),
249 String.format("%.0f", secound), String.format("%.2f", result22), String.valueOf(22), "*", "-",
250 null, "(", null, ")" };
251 return MulAndSub2;
252 }
253 case 23:
254 if ((secound + third) != 0) {
255 double result23 = first / (secound + third);
256 String[] DivAndAdd2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
257 String.format("%.0f", third), String.format("%.2f", result23), String.valueOf(23), "/", "+",
258 null, "(", null, ")" };
259 return DivAndAdd2;
260 } else {
261 twoOperatorAndOperator(num1, num2);
262 }
263 case 24:
264 if (secound > third) {
265 double result24 = first / (secound - third);
266 String[] DivAndSub2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
267 String.format("%.0f", third), String.format("%.2f", result24), String.valueOf(24), "/", "-",
268 null, "(", null, ")" };
269 return DivAndSub2;
270 } else if (secound < third) {
271 double result24 = first / (third - secound);
272 String[] DivAndSub2 = new String[] { String.format("%.0f", first), String.format("%.0f", third),
273 String.format("%.0f", secound), String.format("%.2f", result24), String.valueOf(24), "/", "-",
274 null, "(", null, ")" };
275 return DivAndSub2;
276 } else {
277 twoOperatorAndOperator(num1, num2);
278 }
279 case 25:
280 double result25 = first * (secound * third);
281 String[] MulAndMul2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
282 String.format("%.0f", third), String.format("%.0f", result25), String.valueOf(25), "*", "*", null,
283 "(", null, ")" };
284 return MulAndMul2;
285
286 case 26:
287 if (third != 0) {
288 double result26 = first * (secound / third);
289 String[] MulAndDiv2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
290 String.format("%.0f", third), String.format("%.2f", result26), String.valueOf(26), "*", "/",
291 null, "(", null, ")" };
292 return MulAndDiv2;
293 } else {
294 twoOperatorAndOperator(num1, num2);
295 }
296
297 case 27:
298 if (secound*third != 0) {
299 double result27 = first / (secound * third);
300 String[] DivAndMul2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
301 String.format("%.0f", third), String.format("%.2f", result27), String.valueOf(27), "/", "*",
302 null, "(", null, ")" };
303 return DivAndMul2;
304 } else {
305 twoOperatorAndOperator(num1, num2);
306 }
307 case 28:
308 if(secound / third!=0&& third!=0){
309 double result28 = first / (secound / third);
310 String[] DivAndDiv2 = new String[] { String.format("%.0f", first), String.format("%.0f", secound),
311 String.format("%.0f", third), String.format("%.2f", result28), String.valueOf(28), "/", "/",
312 null, "(", null, ")" };
313 return DivAndDiv2;
314 }else {
315 twoOperatorAndOperator(num1, num2);
316 }
317 default:
318 break;
319 }
320 return null;
321
322 }