Rekurencja

0
public static int oddSum1(int n) {
    int sum = 0;

    if(n % 2 == 1) {

        sum += n;
    }
    if (n >= 0) {
        oddSum1(n -1);
    }

    return n;
}

Mam zadanie które polega na napisaniu rekurencji funkcji która spośród wartości podanej do konsoli, wyodrębnia nieparzyste cyfry i
sumuje je ze sobą, problem polega na tym ze zmienna sum ktora zadeklarowałem w metodzie z każdym nowym wywołaniem resetuje swoja wartość do 0, co jest zrozumiałe dla mnie bo to zmienna lokalna. Nie mogę utworzyć zmiennej instancji która mogłaby przechowywać te wartości bo zadanie na to nie pozwala, moze jakies wskazówki :)

0

Nie widzę tutaj sum

8

oddSum1() mogłoby zwracać sumę nieparzystych cyfr, w stylu:

oddSum(liczba: Int) -> Int:
  if liczba == 0:
    return 0
    
  let cyfra = liczba % 10
  let pozostała-liczba = liczba / 10
  
  if cyfra.jest_parzysta():
    return oddSum(pozostała-liczba)
  else
    return cyfra + oddSum(pozostała-liczba)
1

żeby zrozumieć rekurencję musisz zrozumieć rekurencję

1 użytkowników online, w tym zalogowanych: 0, gości: 1