Compararea biți a numerelor

Având în vedere două numere de cinci cifre, este necesar să se găsească numărul de coincidențe a două cifre identice în cifre echivalente de cifre, precum și numărul de coincidențe a două cifre identice în diferite cifre ale acestor numere. O cifră care a participat deja la o pereche de potrivire nu este calculată din nou. De exemplu, sunt indicate numerele 12345 și 27376. Numărul de coincidențe ale aceleași cifre într-o cifră echivalentă este 1 (acesta este numărul 3), numărul de coincidențe dintre aceleași cifre în diferite cifre este 1 (acesta este figura 2).







a. b - numere date;
a_arr. b_arr - matrice de cifre, ale căror numere constau;
a_dig. b_dig - matrice pentru stocarea informațiilor despre numerele potrivite.

Algoritm pentru rezolvarea problemei:

Numerele sunt descompuse în numere care sunt plasate în matrice. Găsirea restului pe baza 10 indică cifra de ordine inferioară a numărului. În acest caz, numerele se scad treptat, scapând de ordinul inferior actual (div 10). Deoarece extragerea numerelor apare de la capăt, matricele în care sunt introduse sunt "derulate" de la capăt: mai întâi se introduc elementele a cincea a matricei, apoi cele de-a patra, și așa mai departe.







Pentru a găsi aceleași cifre în cifre echivalente, este suficient să comparăm elementele de matrice care se află în aceleași poziții ale două matrice. În același timp, este necesar undeva să salvați informații despre categoriile ale căror numere au coincis. Introducem două matrice suplimentare (a_dig și b_dig). Inițial, în limba de programare Pascal, matricele sunt umplute cu zerouri. Fie elementele acestor tablouri să corespundă cifrelor cifrelor. Dacă cifra numărului a găsit o pereche între aceeași cifră a celui de-al doilea număr, atunci unitățile sunt scrise la biții corespunzători ai celulei matrice.

Luăm următorul element din matricea primului număr. Dacă elementul corespunzător din matricea a_dig este zero (ceea ce înseamnă că nu au existat coincidențe), atunci îl comparăm cu toate elementele celei de-a doua serii de numere care, de asemenea, nu a găsit o pereche. Dacă meciul este găsit în timpul căutării, cifrele 2 sunt plasate în celulele corespunzătoare ale array-urilor a_dig și b_dig.

Numărul de cifre identice în cifre echivalente este egal cu numărul celor din matricea a_dig.

Numărul de cifre identice în diferite cifre este egal cu numărul de gemeni din matricea a_dig.

Matricea b_dig conține aceleași informații despre numărul de unități și de două. Cu toate acestea, cele două sunt în diferite elemente ale matricei.

Program în limba Pascal:







Articole similare

Trimiteți-le prietenilor: