| C++ | PHP |Forum |
| AKTUALNOŚCI | ARTYKUŁY | FORUM | PLIKI | PORADY |
Koderzy.pl » C++ » Artykuły » Algorytmy » Obliczanie silni
Twoje konto

auto ukryj
Losowe porady
Buttony
koderzy.pl
xhtml
css


22 kwietnia 2005 19:15 Obliczanie silni Obliczanie silniPaweł Gniadkowski [Kardon]
Silnia danej liczby to iloczyn wszystkich liczb naturalnych nie większych od tej liczby. Przykładowo: 5! = 5*4*3*2*1Możemy jednak przedstawić silnię liczby n jako iloczyn liczby n oraz (n-1)!. Z kolei liczbę (n-1)! mozemy przedstawić jako (n-1)*(n-2)!. Tak samo możemy rozbijać kolejne liczby naturalne, aż dojdziemy do jedynki. Jak wiemy 1!=1. Tak więc:4! = 4*3! = 4*3*2! = 4*3*2*1! = 4*3*2*1 = 24
Algorytm obliczania silni danej liczby jest bardzo prosty. Tworzymy funkcję silnia. Jej parameterm będzie liczba (np. n), której silnię chcemy obliczyć. Funkcja w pierwszej kolejności sprwdzi, czy n nie jest równe 1 - jeśli tak, to od razu zwróci wynik 1 (ponieważ 1! = 1). Jeśli liczba n okaże się być większą od 1 funkcja zwróci wartość równą n*silnia(n-1). Zostanie wtedy wykonana rekurencyjnie funkcja silnia (z parametrem o jeden mniejszym). Funkcja będzie wykonywać samą siebie do czasu, kiedy parametr wyniesie 1.

Implementacja algorytmu w języku C++ wyglada następująco: #include <iostream> using namespace std; int silnia(int n) { switch (n) { case 1: return 1; break; default: return n * silnia(n-1); } } int main() { int wej; cout << "Silnie jakiej liczby obliczyc?\n"; cin >> wej; cout << silnia(wej); }

© 2010 - Grupa BBN - wszelkie prawa zastrzeżone.
.