La necessità di applicare l'operazione di calcolo del resto della divisione è evidente quando si lavora con le cifre di un numero.
Analizziamo il seguente task:
Viene fornito un numero di tre cifre. Visualizza tutte le cifre di questo numero e ottieni un nuovo numero formato permutando unità e centinaia
La domanda più difficile che si pone per i principianti è come prendere e ottenere le sue cifre da 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 della cifra corrispondente del numero.
Mostreremo come ottenere ogni cifra di un numero in una variabile separata, usando l'esempio di dividere le colonne per il numero 10. (Prendiamo il numero 10, perché abbiamo un sistema di numeri decimali e, di conseguenza, abbiamo termini di cifre 1, 10, 100, ecc.)
Analizzando la figura, puoi vedere che
e := nmod 10; // operazione n mod 10 - calcola l'ultima cifra del numero n (ovvero le unità del numero) 365 mod 10 = 5
d := n div 10 mod 10; // operazione n div 10 - riduce il numero di 10 volte, cioè scarta l'ultima cifra del numero (365 div 10 = 36),
// ora possiamo calcolare il numero delle decine applicando al risultato l'operazione familiare: calcola il resto dopo la divisione per il numero 10, 36 mod 10 = 6
s := n div 100; // per ottenere le centinaia, è sufficiente scartare due cifre a destra del numero, ovvero dividere per 10 due volte (n div 10 div10 o uguale a n div 100< /strong>) 365 div 100 = 3
Avendo le cifre salvate del numero, possiamo ricavarne qualsiasi numero moltiplicando la cifra desiderata per la cifra corrispondente:
ad esempio, la riga sottostante otterrà un nuovo numero dal numero originale n, con le centinaia e le unità riorganizzate:
1) il vecchio numero di uno (memorizzato nella variabile
e) moltiplicato per
100
2) il vecchio numero di decine (memorizzato nella variabile
d) moltiplicato per
10
3) possiamo semplicemente moltiplicare il vecchio numero di centinaia per 1, o semplicemente prendere il valore memorizzato nella variabile
s
Quindi aggiungi semplicemente i valori dei punti 1, 2 e 3 e ottieni un nuovo numero:
n1 := e * 100 + d * 10 + s;
L'intero programma sarà simile a questo:
var n, e, d, s: intero;
inizio
leggi(n);
e := nmod 10;
d := n div 10 mod 10;
s := n div 100;
writeln(e, ' ', d, ' ', s, ' ', e * 100 + d * 10 + s);
FINE.