Bonsoir à la communauté,
J'ai débuté un autre exercice sur codefight (addTwoHugesNumbers).
en input j'ai donc deux ListNode d'Integer et je dois retourner la somme de ces deux "huges integer" sous le même format comme dans l'exemple ci dessous:
a = [9876, 5432, 1999] ; b = [1, 8001],
addTwoHugeNumbers(a, b) = [9876, 5434, 0].
Voici mon code:
mon problème se situe au niveau de la conversion en long que je cherche à effectuer au niveau du number2 qui se trouve dans le else. Je bloque à ce niveau la pour le moment, sachant que dans la console de codefight j'ai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 ListNode<Integer> addTwoHugeNumbers(ListNode<Integer> a, ListNode<Integer> b) { ListNode <Integer> NodeA = a; ListNode <Integer> NodeB = b; ListNode <Integer> myNodeA = null; ListNode <Integer> myNodeB = null; ListNode <Integer> resultNode = null; long number1= 0; long number2= 0; long sum=0; while (a != null){ ListNode <Integer> temp1 = new ListNode (a.value); temp1.next = myNodeA; myNodeA=temp1; if (number1 ==0){ number1 = myNodeA.value.intValue(); } else{ number1 = Long.parseLong(String.valueOf(number1) + String.valueOf(myNodeA.value.intValue())); } a = a.next; } while (b != null){ ListNode <Integer> temp2 = new ListNode (b.value); temp2.next = myNodeB; myNodeB=temp2; if (number2 ==0){ number2 = myNodeB.value.intValue(); } else{ number2 = Long.parseLong(String.valueOf(number2) + String.valueOf((myNodeB).value.intValue())); } b = b.next; } sum = number1 + number2; return resultNode; }
Pour la suite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Exception in thread "main" java.lang.AssertionError: java.lang.reflect.InvocationTargetException at myCode._invoke(file.java on line ?) at myCode.main(file.java on line ?) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at myCode._invoke(file.java on line ?) ... 1 more Caused by: java.lang.NumberFormatException: For input string: "99989999999999999999" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Long.parseLong(Long.java:592) at java.lang.Long.parseLong(Long.java:631) at _runpftgi.addTwoHugeNumbers(file.java on line 42) ... 6 more
Après la conversion en long, j'avais dans l'idée de réaliser la somme de number1 et de number2, ensuite je compte travailler sur cette variable sum qui stockera le resultat pour ensuite venir parser 4 par 4 le chiffre et l'intégrer dans un listNode, pour présenter le résultat dans une forme identique aux deux ListNode fourni en input.
Je vous remercie d'avance pour l'aide que vous pourrez m'apporter aussi bien au niveau de mon blocage que de mon raisonnement pour la suite.
Cdlt,
misterJay973.
Partager