Silnia, czas wykonywania - Python

This commit is contained in:
Mateusz Słodkowicz 2024-11-18 15:55:45 +01:00
parent bb0bda28ae
commit e558d6936a
Signed by: materus
GPG Key ID: 28D140BCA60B4FD1
1 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,40 @@
from datetime import datetime
def Czytaj_liczbe():
return int(input("Podaj liczbe calkowita: "))
def Silnia_rekurencyjna(n):
if(n==0):
return 1
else:
return n * Silnia_rekurencyjna(n-1);
def Silnia_iteracyjna(n):
wynik = 1
for i in range(1,n+1):
wynik = wynik*i
return wynik
def Wypisz_wynikli(liczba,ile,wynikRek,wynikIter,CzasI,CzasR):
print("Podana liczba:", liczba);
print("Podana liczba iteracji", ile);
print("Czas silni rekurencyjnej:", CzasR, 'sekund');
print("Silnia rekurencyjna:", wynikRek);
print("Czas silni iteracyjnej:", CzasI, 'sekund');
print("Silnia iteracyjna:", wynikIter);
def Glowna_procedura():
wynikR = 0
wynikI = 0
liczba = Czytaj_liczbe()
ile = int(input("Podaj liczbe iteracji: "))
CzasI = datetime.today()
for i in range(0,ile+1):
wynikI = Silnia_iteracyjna(liczba)
CzasI = datetime.today() - CzasI
CzasI = CzasI.seconds+CzasI.microseconds*0.000001
CzasR = datetime.today()
for i in range(0,ile+1):
wynikR = Silnia_rekurencyjna(liczba)
CzasR = datetime.today() - CzasR
CzasR = CzasR.seconds+CzasR.microseconds*0.000001
Wypisz_wynikli(liczba,ile,wynikR,wynikI,CzasI,CzasR)
Glowna_procedura()