• 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ą

Object Storage Arubacloud
0 głosów
191 wizyt
pytanie zadane 20 października 2020 w Java przez Lulex Użytkownik (820 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 Pasjonat (15,610 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 Ekspert (269,710 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,580 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ź 832 wizyt
pytanie zadane 22 października 2020 w C i C++ przez Kacper009123 Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 612 wizyt
pytanie zadane 4 maja 2018 w C i C++ przez miki7331 Nowicjusz (120 p.)
0 głosów
3 odpowiedzi 795 wizyt
pytanie zadane 15 lutego 2019 w Java przez mn130496 Gaduła (3,530 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...