Obliczanie silni

Teraz napiszemy program obliczający silnię w C++ w sposób rekurencyjny czyli funkcja licząca silnię będzie wywoływać samą siebie:




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
using namespace std;
 
double sil(double x){
  if (x==1){
     return 1;
  }else{
 return sil(x-1)*x;
  }
}
 
int main(){
 cout << "Podaj liczbe: ";
 int x;
 cin >> x;
 cout << x << "! = " << sil(x);
 
return 1;
}


Jak widać, funkcja sil wywołuje sama siebie gdy liczba nie jest równa '1'. Wywołanie funkcji w głównym programie następuje poprzez podanie liczby dla której chcemy obliczyć silnię jako argument naszej funkcji.



Metoda druga to:

W tym wpisie obliczanie silni będzie następować za pomocą iteracji w pętli for. Wszystkie obliczenia odbywają się zgodnie z zasadami matematycznymi. Przykładowy program w C++ wygląda następująco:


?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream.h>
using namespace std;
 
int main(){
 int x;
 
 cout << "Podaj liczbe: ";
 cin >> x;
 long sil=1;
 for (int i=1; i<=x; i++) silnia*=i;
 cout << x << "! = " << silnia;
 return 1;
}

Program ten liczy silnię w sposób iteracyjny, pobierając liczbę z klawiatury a następnie licząc silnię.