11import java .util .ArrayList ;
22import java .util .List ;
33
4- public class Chain1Sequence {
4+ public class Chain1Sequence {
55
66 public boolean isNumeric (String value ){
77 try {
8- Integer . parseInt (value );
8+ Long . parseLong (value );
99 return true ;
1010 } catch (NumberFormatException e ){
1111 return false ;
1212 }
1313 }
1414
15+ //2147483647 IntegerMax
16+ //4194303 число, которое все еще дает цепочку int
17+
18+ public <T > T returnNumericValue (String value ) {
19+ if (isNumeric (value )) {
20+ if (Long .parseLong (value ) >= 0 ) {
21+ if (Long .parseLong (value ) <= 4194303 ) {
22+ return (T ) Integer .valueOf (Integer .parseInt (value ));
23+ } else {
24+ return (T ) Long .valueOf (Long .parseLong (value ));
25+ }
26+ }
27+
28+ return null ;
29+ }
30+
31+ return null ;
32+ }
33+
34+
1535 public List <String > getExpectedValues (String value ) {
36+ List <String > expectedValues = new ArrayList <>();
37+
38+ if (returnNumericValue (value ) instanceof Integer ) {
39+ int valueInt = Integer .parseInt (value );
40+
41+ expectedValues .add (0 , String .valueOf (valueInt )); //expectedValues.get(0) -> F1
42+
43+ for (int i = 1 ; i < 10 ; i ++) {
44+ valueInt = valueInt * 2 ;
45+ expectedValues .add (i , String .valueOf (valueInt )); //expectedValues.get(i) -> Fi+1 until F10
46+ }
47+
48+ return expectedValues ;
49+
50+ } else if (returnNumericValue (value ) instanceof Long ) {
51+ long valueLong = Long .parseLong (value );
52+ expectedValues .add (0 , String .valueOf (valueLong )); //expectedValues.get(0) -> F1
53+
54+ for (int i = 1 ; i < 10 ; i ++) {
55+ valueLong = valueLong * 2 ;
56+ expectedValues .add (i , String .valueOf (valueLong )); //expectedValues.get(i) -> Fi+1 until F10
57+ }
58+
59+ return expectedValues ;
60+ }
61+
62+ return null ;
63+ }
64+
65+ public List <String > getExpectedValuesLong (String value ) {
1666 List <String > expectedValues = new ArrayList <>();
1767
1868 if (isNumeric (value )) {
19- int valueInt = Integer . parseInt (value );
69+ long valueLong = Long . parseLong (value );
2070
21- if (valueInt >= 0 ) {
22- expectedValues .add (String .valueOf (valueInt )); //expectedValues.get(0) -> F1
71+ if (valueLong >= 0 ) {
72+ expectedValues .add (0 , String .valueOf (valueLong )); //expectedValues.get(0) -> F1
2373
2474 for (int i = 1 ; i < 10 ; i ++) {
25- valueInt = valueInt * 2 ;
26- expectedValues .add (i , String .valueOf (valueInt )); //expectedValues.get(i) -> Fi+1 until F10
75+ valueLong = valueLong * 2 ;
76+ expectedValues .add (i , String .valueOf (valueLong )); //expectedValues.get(i) -> Fi+1 until F10
2777 }
2878
2979 return expectedValues ;
@@ -34,4 +84,6 @@ public List<String> getExpectedValues(String value) {
3484
3585 return null ;
3686 }
87+
88+
3789}
0 commit comments