(Python) Divisione intera e resto


Divisione e resto di interi

Nel modulo "Espressioni aritmetiche" abbiamo parlato delle operazioni di divisione tra interi.
Ricordiamoli ancora:
// - divisione intera, quando scartiamo la parte frazionaria come risultato dell'operazione di divisione
% - calcolo del resto di una divisione.
L'operazione di resto per i numeri negativi in  Python viene eseguito in modo leggermente diverso rispetto ad altri linguaggi di programmazione come C++ o Pascal
In Python, l'operazione di calcolo del resto viene eseguita secondo regole matematiche, ovvero, come si crede comunemente nella Teoria dei numeri, il resto è un numero non negativo   (articolo molto utile 81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC" target=" _blank">qui). Il segno del resto è uguale al segno del divisore.

Esempio 
c = 10 // 3 # Risposta: c = 3
d = 10% 3 # Risposta: d = 1
e = -7 // 4 # Risposta: e = -2
f = -7% 4 # Risposta: f = 1
I valori delle variabili e e f sono risultati così perché 
-7 = (-2*4)+1

Devi ricordare!
In Python, l'operazione di calcolo del resto per i numeri negativi viene eseguita secondo regole matematiche, ovvero \(-7\ \%\ 4 = 1 \)< br /> Nel linguaggio di programmazione Python il segno di resto è uguale al segno di divisore. 

Le operazioni intere sono molto importanti nella programmazione. Devono essere capiti e usati correttamente. E questo richiede pratica!

Divisione e resto di interi

La necessità di applicare l'operazione di calcolo del resto della divisione è evidente quando si lavora con le cifre di un numero. 
 
Attività
Viene fornito un numero di tre cifre. Visualizza tutte le cifre di questo numero, a partire dalle unità, e ottieni un nuovo numero formato dalla permutazione di unità e centinaia.

Pensiamo sempre a un numero nel suo insieme, ma non dimenticare che i numeri sono composti da cifre. Come si selezionano tutte le cifre di un numero?
In effetti, tutto è risolto in modo abbastanza semplice, se ricordi la matematica. E la matematica ci dice che qualsiasi numero può essere scomposto in una somma di cifre.

Ad esempio: 365 = 3*100 + 6*10 + 5*1 .
Vediamo che ogni cifra è un moltiplicatore del termine bit corrispondente. 

Mostreremo come ottenere ogni cifra di un numero in una variabile separata usando l'esempio della divisione per una colonna per il numero 10. Prendiamo il numero 10, perché abbiamo un sistema numerico decimale e, di conseguenza, i termini bit 1, 10, 100, ecc.

  

Analizzando la figura, puoi vedere che 
e = n% 10
# operazione n % 10 - calcola l'ultima cifra del numero n
# (ovvero la cifra delle unità) 365 % 10 = 5

d = n // 10% 10
# operazione n // 10 - riduce il numero di 10 volte,
# cioè scarta l'ultima cifra del numero (365 // 10 = 36),
# ora possiamo calcolare la cifra delle decine,
# applicando l'operazione familiare al risultato -
# calcola il resto dopo aver diviso per il numero 10, 36 % 10 = 6
 
s = n // 100
# per ottenere la cifra delle centinaia basta scartare due cifre a destra del numero,
# cioè due volte diviso per 10
# (n // 10 // 10 o uguale a n // 100) 365 // 100 = 3 

Avendo le cifre del numero memorizzate nelle variabili, possiamo ricavarne qualsiasi altro numero moltiplicando la cifra desiderata per i fattori di bit appropriati (per 1, 10, 100, ecc.): 
Ad esempio, la riga seguente otterrà un nuovo numero dal numero originale n, con le centinaia e le unità riorganizzate:
1) la cifra delle unità (memorizzate nel  e)  moltiplicare per 100
2) la cifra delle decine (memorizzata nella variabile d)  moltiplicata per 10
3) possiamo semplicemente moltiplicare la cifra delle centinaia per 1, o semplicemente prendere il valore memorizzato nella variabile s.
Quindi i valori dei punti 1, 2 e 3 devono essere semplicemente aggiunti e otteniamo un nuovo numero:
n1 = e*100 + d*10 + s;

Il programma completo sarà simile a questo:
n = int(input())
e = n% 10
d = n // 10% 10
s = n // 100
print(e, d, s, e*100 + d*10 + s)