Cześć, zacząłem się bawić w SPOJa i mam pewien problem:
http://pl.spoj.com/problems/FCTRL3/
ogólnie spoko ale jest haczyk "Opis każdego przypadku składa się z jednej linii, w której znajduje się jedna nieujemna liczba całkowita n (0 ≤ n ≤ 1 000 000 000)."
Funkcja rekurencyjna w przypadku tak ogromnych liczb wywala błąd, więc przesłanie rozwiązania na SPOJu kończy się błędem Non zero exit code (NZEC)
natomiast wrzucenie to w block TRY wywala na platformie błąd "niepoprawna odpowiedź"
t = int(input())
def silnia(x):
if x <= 0:
return 1
elif x == 1:
return 1
else:
try:
return x * silnia(x-1)
except:
return
for i in range(t):
value = str(silnia(int(input())))
if len(value) > 1:
print(value[len(value)-2], end=" ")
else:
print(0, end=" ")
print(value[len(value)-1])
PS. można te cyfry dziesiątek i jedności wypisać w jakiś bardziej 'sexy' sposób?
Dziękuje z góry :)