algorytm.org

Implementacja w Python



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Silnia - Implementacja w Python
Ocena użytkownikóww: *****  / 71
SłabyŚwietny
Nadesłany przez Adrian Dymek, 11 kwietnia 2011 01:25
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

s_1_py.py:
#obliczanie silni
#www.algorytm.org

n = int(raw_input("Prosze podac liczbe: "))

def silnia_rek(n):
    """Obliczanie silni rekurencyjnie"""
    if n>1:
        return n*silnia_rek(n-1)    #wywolanie rekurencyjne funkcji
    elif n in (0,1):
        return 1;

def silnia_iter(n):
    """Obliczanie silni iteracyjnie"""
    silnia_tmp=1 #zmienna pomocnicza
    if n in (0,1):  #gdy n = 0 lub 1 zwroc 1
        return 1
    else:
        for i in range(2,n+1):  #gdy n>1 mnoz przez kolejne liczby od 2 do n
            silnia_tmp = silnia_tmp*i
        return silnia_tmp

print silnia_rek(n)
print silnia_iter(n)
Komentarze
photo
0 # Waldek 2015-06-25 20:49
Można też i tak

def silnia(n):
return reduce(lambda x,y: x*y, range(1L,n+1))

a i tak też się uda:

def sil(n):
f = lambda x: x * f(x-1) if x != 0 else 1
return f(n)

Pozdrówka
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # zigggin 2017-01-03 14:54
a ja w taki sposób zrobiłem tylko że ja to początkujący :)

def silnia_a():
silnia = []
z = int(input('liczba: '))+1
for i in range(1,z):
silnia.append(str(i))

silnia1 = '*'.join(silnia)
print(silnia1)
total = eval(silnia1)
print(total)
return total
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # zigggin 2017-01-03 20:01
można jeszcze tak

def silnia2(self):
z = int(input('podaj silnię: '))
s=1
if z==0:
print(s)
else:
for i in range(1,z+1):
s = s*i
print(s,'wynik')
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # Schab 2017-01-08 00:48
def silnia_iter(n):
i=0
suma=1
while(n!=i):
i += 1
suma = suma * i
print(suma)
silnia_iter(n)
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz