Confronto dei numeri con la codifica per bambini di 10 anni
Oggi per curiosità ho preso un sesto libro di matematica standard. Il primo argomento/problema del libro è stato il confronto dei numeri. Ad esempio: identificare il massimo e il minimo in una serie di numeri ecc. Stranamente questo viene richiesto anche per i colloqui di codifica per ingegneri del software junior. (Trova max/min da un array, confronta i numeri senza utilizzare gli operatori disponibili)
Immediatamente ho pensato, questo argomento può essere insegnato in un modo che uno studente del sesto livello possa capire e anche programmare. Quindi di seguito c'è un tentativo di semplice spiegazione che un bambino di 10 anni può capire.
La prima cosa da capire è come si forma il numero (numero decimale positivo reale). Un numero è formato con 2 componenti principali posizionando e cifre . Ora l'accento è posto sul posizionamento e sulla cifra (ricorda l'ordine).
Per formare un numero dobbiamo iniziare con il numero di posti. Mentre ci spostiamo da destra a sinistra, il luogo trasporta un peso 10 volte maggiore.
Nell'esempio seguente puoi vedere che abbiamo 1 posto, 2 posti, 3 posti per formare il numero. Per prima cosa abbiamo 1 posto e in quel posto mettiamo una cifra (diciamo 1). Il peso delle posizioni è 1 e la cifra è 1, quindi l'output finale che otteniamo è 1. Successivamente abbiamo 2 posizioni e di nuovo inseriamo la cifra 1. Per la prima posizione il peso è 1 ma per la seconda è 10 volte il peso precedente, quindi ottieni 11. Allo stesso modo otteniamo 111 per il terzo.
Ora puoi vedere l'importanza di posizionare , poiché il numero si sposta a sinistra la sua grandezza aumenta dell'ordine di 10.
Quindi la prima regola per confrontare i numeri è che maggiore è il numero di posizioni maggiore è il numero . Nell'esempio sopra, l'ultimo numero ha 3 posizioni quindi è il più grande di tutti.
E se il numero di posti è uguale? Poi arriva il principio successivo, cioè la cifra. Più grande è la cifra più grande è il numero.
Ma quale cifra confrontare per prima? Poiché sappiamo che le cifre più a sinistra portano il maggior peso, quindi inizia dalla cifra più a sinistra di entrambi i numeri. La cifra più grande è il numero più grande, tuttavia, se sono uguali, spostati di una posizione a destra per entrambi i numeri e ripeti.
Ecco un'altra rappresentazione visiva di questo:
Ecco l'intero algoritmo:
- Confronta il numero di posti in una cifra. Se non sono uguali, il numero con i posti più alti è più grande. ad esempio 111 è più grande di 11
- Se il numero di posizioni è uguale, prova la cifra più a sinistra di entrambi i numeri. Se non è uguale, il numero con la cifra più alta è più grande. ad esempio 210 è maggiore di 150.
- Se la cifra più a sinistra è uguale, spostiamo il puntatore a destra, trattando la seconda cifra in entrambi i numeri come la cifra più a sinistra e ripetiamo 2. Ad esempio, 150 è maggiore di 140.
- Ripeti 2 e 3 finché non troviamo le risposte, se esauriamo le cifre da confrontare, allora entrambi i numeri sono uguali.
function findBiggerNumber(num1, num2) {
if(num1.length != num2.length){
return num1.length > num2.length ? num1 : num2;
}
i = 0;
while(num1[i] == num2[i]){
i++;
}
if(i== num1.length){
return -1;
}
return num1[i] > num2[i] ? num1 : num2;
}
![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































