Wyrażenie x = n! oznacza, że algorytm dla dodatniej liczby naturalnej n wyznacza silnię, czyli:
n! = 1 · 2 · 3 · … · n (dla n ≥ 1).
W praktyce algorytm silni najczęściej działa iteracyjnie: ustawia zmienną (np. x) na 1 i w pętli mnoży ją przez kolejne wartości licznika (np. i = 1..n). Taki schemat nazywa się akumulacją iloczynu (akumulator jest aktualizowany w każdej iteracji).
Dlaczego pozostałe opcje nie pasują?
- x = n*i to tylko jedno mnożenie n przez i. Bez informacji o tym, że i przebiega wszystkie wartości i że wynik jest akumulowany, nie daje to silni, tylko bieżący iloczyn dwóch liczb.
- x = n%… (operator modulo) zwraca resztę z dzielenia. Modulo nie służy do liczenia iloczynu 1..n, więc nie prowadzi do n!.
- x = n*(i + 1) również opisuje jednorazowe przekształcenie n zależne od i, a nie wielokrotne mnożenie kolejnych liczb z zapamiętywaniem wyniku.
Wskazówka egzaminacyjna: gdy w zadaniach widzisz pętlę z mnożeniem i "narastającym" wynikiem (x ← x · i), to bardzo często jest to silnia. Gdy jest dodawanie (x ← x + i), zwykle chodzi o sumę.