Odpowiedź :
Odpowiedź wraz z komentarzami:
#include <iostream>
using namespace std;
int main()
{
int x;
long wynik = 1; //long, ponieważ przechowuje większe liczby, int też mógłby być
cout << "Podaj liczbę do wykonania operacji silni: ";
cin >> x;
//pętla dla: 2,3,...,x czyli wynik*2*3*...*x
for( int i = 2; i <= x; i++ )
{
wynik *= i; //pomnóż aktualny wynik o i
}
cout << x << "! = " << wynik;
return 0;
}
Odpowiedź
Zgodnie z komentarzem, tylko 8.
Załączniki zawierają:
- Program używający typu int i przykładowy wynik.
- Oddzielny wydruk tego samego programu w moim zdaniem lepszej kolorystyce. (Program używa typu int.)
- Wydruk programu takiego jak powyżej, ale używającego do obliczeń typu long long int.
- Nie potrzebne do rozwiązania zadania: ilustracja jak w zależności od typu zmiennej zmienia się możliwość obliczenia silni (pomysł dzięki odpowiedzi kolegi).
- Nie potrzebne do rozwiązania zadania: kod źródłowy programu, który wykonał powyższe obliczenia.
Wyjaśnienia
Z 4. załącznika widać, że aby mieć pewność jakich wartości można użyć dla 'n', należy albo użyć 'int', albo 'long long int', ponieważ wyniki dla 'long int' są zmienne – zależą od tego gdzie program jest wykonywany!
Oczywiście dotyczy to każdych obliczeń. Widać, iż należy unikać używania typu 'long int'. Zwykle wystarczy typ 'int', jednak gdy nie wystarcza, należy od razu przejść na 'long long int'.