Estrarre le cifre di un numero e raccoglierle in una lista
Soluzione 1
Se il numero è minore di 100 le cifre sono al più 2
numero = 28
lista = [0,0] # Risposta "temporanea"
lista[0] = numero//10 # 2, decine
lista[1] = numero%10 # 8, unità
# [2, 8]
Soluzione 2
Se il numero è minore di 1000 le cifre sono al più 3
numero = 287
lista = [0,0,0] # Risposta "temporanea"
lista[0] = numero//100 # 2, centinaia
lista[1] = (numero//10)%10 # 8, decine
lista[2] = numero%10 # 7, unità
# [2, 8, 7]
Soluzione 3
Se il numero è grande a piacere è necessario estrarre le cifre una alla volta, da destra verso sinistra
numero = 18732
lista = []
n = numero
while(n != 0):
q = n//10
r = n%10
lista.append(resto)
n = quoziente
lista.reverse()
+-------+------+---+-----------+
| n | q | r | lista |
+-------+------+---+-----------+
| 18732 | 1873 | 2 | 2 |
| 1873 | 187 | 3 | 2 3 |
| 187 | 18 | 7 | 2 3 7 |
| 18 | 1 | 8 | 2 3 7 8 |
| 1 | 0 | 1 | 2 3 7 8 1 |
| 0 | | | |
+-------+------+---+-----------+
Esercizi
- L’elenco delle cifre in ordine crescente
- La somma delle cifre
- Il prodotto delle cifre
- La cifra più grande
- Il numero è palindromo?
- …