• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

licznik operacji w funkcji z silnią

0 głosów
72 wizyt
pytanie zadane 20 października 2020 w Java przez Lulex Użytkownik (560 p.)

Cześć. Muszę dodać licznik do silnia(), który zliczy ile razy ta metoda się wykonuje w symbolNewtona() jednak nie wiem jak to zrobić. 

class symbolNewtona {

    public static int silnia(int i) {
        if (i < 1)
            return 1;
        else {
            return i * silnia(i - 1);
        }
    }

    public static int symbolNewtona(int n, int k) {
        int wynik = (silnia(n) / ((silnia(k)) * silnia((n - k))));
        return wynik;
    }

    public static void main(String[] args) {
            int x = symbolNewtona(8,3);
            System.out.println(x);
        }
    }

Jeśli dodaje jakiś int licznik = 0 w silnia() to owszem zlicza, ale tylko raz bo następne wywołanie go zeruje, a chciałbym otrzymać sumę wszystkich wywołań.

komentarz 20 października 2020 przez Whiskey_Taster Stary wyjadacz (12,010 p.)
Użyj zmiennej statycznej, tak jak w odpowiedzi proponuję ktoś. Zmienne statyczne są zwalniane na koniec programu, więc ich informacje "nie giną" w trakcie działania programu.
komentarz 25 października 2020 przez Wiciorny Mędrzec (187,870 p.)

akurat "Statycznoczność" zmiennej będzie tutaj związana z tym, że zliczane mają być metody statyczne- które nie należą do instancji obiektu a do klasy, stąd należy umieścić pole statyczne- które przynależeć będzie do klasy, a nie do obiektu. 
 

static int licznik;

Warto mieć na uwadze, to że w sytuacji kiedy będziemy mieli niestatyczną metodę, która będzie chciała w jakiś sposób manipulować zmienną statyczną, w ten sposób wszystkie instancje będą miały ( znały już wartość statycznej zmiennej ) . Poprzez referencje możemy też skorzystać z metody statycznej w ramach obiektu instancji 

1 odpowiedź

+1 głos
odpowiedź 20 października 2020 przez bartolinciu Dyskutant (7,620 p.)

Umieść 

static int licznik;

w klasie, wtedy będzie ona widoczna we wszystkich funkcjach i będziesz mógł ją wyzerować w funkcji main i inkrementować w funkcji silnia.

Podobne pytania

0 głosów
1 odpowiedź 212 wizyt
pytanie zadane 22 października 2020 w C i C++ przez Kacper009123 Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 369 wizyt
pytanie zadane 4 maja 2018 w C i C++ przez miki7331 Nowicjusz (120 p.)
0 głosów
3 odpowiedzi 207 wizyt
pytanie zadane 15 lutego 2019 w Java przez mn130496 Gaduła (3,510 p.)

85,877 zapytań

134,650 odpowiedzi

298,919 komentarzy

56,745 pasjonatów

Advent of Code 2021

Top 15 użytkowników

  1. 1048p. - rucin93
  2. 1042p. - Whistleroosh
  3. 989p. - adrian17
  4. 984p. - Mikbac
  5. 982p. - Mateusz Bogdan
  6. 977p. - Michal Drewniak
  7. 967p. - nidomika
  8. 859p. - CC PL
  9. 854p. - Argeento
  10. 757p. - ScriptyChris
  11. 692p. - s. Dorota Kowalewska
  12. 683p. - tokox
  13. 660p. - Vinox
  14. 645p. - TheLukaszNs
  15. 628p. - WhiskeyTaster
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...