Długość inta / ostatnie 2 cyfry ?

0

mam jakąś zmienną do niej przypisaną liczbę całkowitą np:
liczba = 123456789
niestety "int" nie jest iteracyjny [dobrze napisałem?] zatem nie mogę wziąć np. liczba[0] aby pokazało 1, liczba[1] aby pokazało 2 itp.
Interesują mnie w tym przypadku dwie ostatnie liczby, a mianowicie 8 i 9 aby odczytać z łańcucha liczb.

Próbowałem przez dzielenie przez 10 i resztę z dzielenia przez 10, i co prawda "przedostatnia" (liczba dziesiątek) się zgadza, natomiast liczba "jedności" (ostatnia) już nie.

Jakiś pomysł jak je odczytać ?

0

to spróbuj modulo 100

0
 int(str(1234567890)[i])
0

ok dzieki, zapomnialem ze moge str(liczba) ;<

0

@krwq: zależy co kto lubi, mi się to wydaje mniej czytelne jak na możliwości pythona

wersja z dwoma ostatnimi cyframi:

int(str(123456789)[-2:])
0

jeszcze jedno pytanko.
Dlaczego w silni, gdy wpisze za "n" > 1000 wyskakuje mi błąd, a gdy "n" < 1000 jest wszystko ok ?

def silnia(n):
    if n <=1:
        return 1
    return n * silnia(n-1)
     
0

Domyślasz się w ogóle jaka duża jest taka liczba?

Zgaduję, że rozwiązujesz zadanie ze spoja. Spójrz na komentarze. Oblicz silnię z pierwszych 20 liczb i spójrz na to jakie mają dwie ostatnie cyfry i stąd wyciągnij wnioski.

0

RuntimeError: maximum recursion depth exceeded
za dużo rekurencji, zrób to iteracyjnie

0

Bo stosujesz rekurencję, domyślna głębokość stosu wywołań to 1000.

import sys

print('poczatkowa glebokosc rekurencji: %d' % sys.getrecursionlimit())
sys.setrecursionlimit(690666);
print('aktualna glebokosc rekurencji: %d' % sys.getrecursionlimit())
0

tak, juz wiem ock; d zrobiłem to zadanie w pythonie na spoju, zaakceptowała :) dziekie wielkie !

1 użytkowników online, w tym zalogowanych: 0, gości: 1