Rozpoczynam przerabianie zadań z książki Jacka Matulewskiego Visual Studio 2013 - język C# i mam pewien problem.
Przygotuj metodę o sygnaturze static long Silnia(byte argument);
obliczającą silnię liczby podanej w argumencie. Silnia z liczby 3 to 3! = 1·2·3.
Silnia z liczby n to n! = 1·2·...· (n – 1) n. Sprawdź, czy wartości zwracane
przez metodę są prawidłowe, oraz ustal, dla jakich wartości argumentów
wartość tej metody pozostaje w zakresie liczby long (maks. wartość to 9 223
372 036 854 775 807). Dodaj do metody warunek sprawdzający, czy argument
jest z prawidłowego zakresu (w przeciwnym przypadku należy zgłosić
wyjątek ArgumentOutOfRangeException).
Mój kod:
https://pastebin.com/F1pSPfhH
Pytania:
- Jak ustalić dla jakich wartości argumentów wartość tej metody pozostaje w zakresie liczby long, skoro podaje liczbę n dla której liczona jest silnia? Czy mam sobie wpisywać w konsoli wartość n i sprawdzić kiedy wartość silni się wysypuje?
- Jak mam dodać do metody warunek sprawdzający czy argument jest prawidłowego zakresu skoro przed wejściem do metody wartość n jest typu byte czyli zakres wynosi od 0 do 256 bodajże więc jeśli podam liczbę ujemną to wtedy do tej metody nie wejdę bo wywali błąd?