Java

2013-01-11 7 views
5

'daki yinelemeli öğe sayısı için yığın taşması Bir tamsayıyı ikili tamsayıda sayma sayısını saymaya çalışıyorum. Bunu yinelemeli olarak yapmalıyım. Mantığımın doğru olduğunu düşünüyorum ama yığın taşmaya devam ediyorum. 2. günde sorun giderme aşamasındayım.Java

Benim mantık bu bilgilere dayanır
static int CountRecursive(int n) { 
    int sum = 0; 
    if (n >= 0) { 
     if (n%2 == 1) { 
      sum ++; 
     } sum += CountRecursive(n/2); 
    } return sum; 
} 

: İşte benim kod "ikili ondalık dönüştürmek için standart mekanizma defalarca her bir bölüm de, 2 ile ondalık sayı bölmek ve etmektir, çıkış kalan (0 veya 1) ".

+0

Not. – biziclop

cevap

11

Eşitleri, if. 0'a bölü 2 hala sıfırdır - sonsuz yinelemeye girersiniz.

Bunu bir hale demek:

if (n >= 0)

sıkı bir karşılaştırma yani: Eğer çözüm çimdik zorunda hatta daha çok negatif tamsayılar için çalışmak olsa

if (n > 0)

+0

İşte buydu! Teşekkürler! – AntBite