Wpis z mikrobloga

@RysiuFujara: ale chwila moment, przecież to można zrobić w czasie stałym
dla 0! to będzie 00
dla 1! to będzie 01
dla 2! to będzie 02
dla 3! to będzie 06
dla 4! to będzie 24
dla 5! to będzie 20
dla 6! to będzie 20
dla 7! to będzie 40
dla 8! to będzie 20
dla 9! to będzie 80
dla 10! i wyżej to będzie 00
@phoe: Taa wiem co to silnia :D studbaza here, zacząłem się programowania uczyć z parę dni temu chociaż jest praktycznie nie związany z moim kierunkiem.
No i nie wpadłem na to ze po 10! zawsze jest 0 0

@phoe: @matrix929: Dobra mam kolejne pytanie, nie będę tworzył nowego wątku bo pewnie odpowiedz jest trywialna. Co jest nie tak z moją odpowiedzią w tym zadaniu?
Z tego co wyczytałem pow() zwraca czasem floata np 10^2 to 99.9999... no to go zaokrąglam zmieniam z powrotem na inta (wszystko tu ok?) i wyznaczam cyfre jedności. Jak sprawdzam czy dziala poprawnie to wszystko ok, a w SPOJu jest lipa. ( ͡
@RysiuFujara: Jeśli mam dać wskazówkę, to wszystko zależy od ostatniej cyfry liczby potęgowanej, nie optymalizując zmiennych możesz wykroczyć poza ich zakres co automatycznie spowoduje błędny wynik, pierwsze co masz zrobić to zoptymalizuj zmienną. Jeszcze jedna wskazówka, jeśli chodzi o ostatnią cyfrę to istnieje pewna zależność, pewnie okres, spróbuj to zauważyć ;)
@RysiuFujara: nie rób tego za pomocą pow().
jest twierdzenie, które mówi o potęgowaniu modulo.
wyznaczanie ostatniej cyfry - to nic innego jak potęgowanie jakiejś liczby modulo 10.
znajdź je, poczytaj o nim, i zrób to zadanie nie korzystając w ogóle z floatów.
@matrix929: w skrócie, dla liczb całkowitych:
jak potęgujesz a^b, gdzie b = c\*d\*e\*f\*g, to:
a^b mod x = ((((a^c mod x)^d mod x)^e mod x)^f mod x)^g mod x
możesz to wykorzystać i tak naprawdę zamiast całej liczby, potęgować tylko jej ostatnią cyfrę, a z otrzymanego wyniku też zawsze brać tylko ostatnią cyfrę do przyszłych obliczeń. a to jest proste i da się zrobić w czasie logarytmicznym od potęgi, czyli liniowym
@phoe: Hah okey, to chyba jednak jak na piąty dzień nauki to trochę za daleko poleciałem, ale dzięki wielkie poczytam o tym twierdzeniu. Możesz mi tylko powiedzieć co jest złego w moim rozumowaniu i co tam się dzieje źle? :D