Problem

14 /16


La domanda più difficile per i principianti, ovvero le cifre di un numero

Theory Click to read/hide

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.

Problem

Un numero di tre cifre viene inserito dalla tastiera. 
Scrivete un programma che stampi spazi separati su una riga:
la somma delle cifre del numero e del nuovo numero formato dalla permutazione di unità e decine