2016-11-04 21 views
0

私は配列内のすべての奇数の合計を計算する再帰的な方法を書いています。しかし、私のプログラムでは、負の数を正の数として追加していました。Javaで負の数を減算する問題

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

だから私は周りにこれに私のコードを変更:

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

をそれはまだ私に同じ応答を与え、私は私が間違ってやっているかを把握することはできません。 Javaでは

+0

「合計」のタイプは何ですか。 'nums'のタイプは何ですか?その内容は何ですか? – Michael

+0

'num'は' Integer [] 'です。 'sum'は' int'です。 'start'は、現在のインデックスを表す' int'であり、メソッドの先頭で0から始まります。 –

+2

Javaの '% '演算子は真ではありません。 'n%2'は負の' n'のために1になることは決してありません - 代わりに '(n&1)'を考えてください – khelwood

答えて