2016-11-04 7 views
0

Ich schreibe eine rekursive Methode, um die Summe aller ungeraden Zahlen im Array zu berechnen. Mein Programm fügte jedoch negative Zahlen als positive Zahlen hinzu.Problem Subtrahieren von negativen Zahlen in Java

if(nums[start] % 2 == 1) { 
    sum+=nums[start]; 
    return computeSumOfOdd(nums, start + 1, sum); 

Also änderte ich meinen Code um zu diesem:

if(nums[start] % 2 == 1) { 
    if(nums[start] < 0) 
    sum-=nums[start]; 
    else 
    sum+=nums[start]; 
    return computeSumOfOdd(nums, start + 1, sum); 

Es gibt mir immer noch die gleiche Antwort, und ich kann ich falsch mache nicht herausfinden, was passiert.

+0

Was ist die Art von 'sum'? Was ist der Typ von 'nums' und was ist sein Inhalt? – Michael

+0

'num' ist ein' Integer [] '. 'sum' ist ein' int'. 'start' ist ein' int', das den aktuellen Index darstellt, der bei 0 am Anfang der Methode –

+2

gestartet wurde. Javas '%' Operator ist nicht wahr modulo. 'n% 2' ist niemals gleich 1 für negative' n' - betrachte '(n & 1)' stattdessen – khelwood

Antwort

Verwandte Themen