A számok bitenkénti összehasonlítása
Két ötjegyű szám alapján két azonos számjegyű egybeesésszámot kell találni a számok egyenértékű számjegyeként, valamint a két számjegy különböző számjegyű két azonos számjegyű egybeesések számát. Egy szám, amely már részt vett egy párban, nem számít újra. Például a 12345 és a 27376 számokat adják meg: azonos számjegyű egybeesések száma 1 (ez a szám 3), az azonos számjegyek száma különböző számjegyekben 1 (ez a 2. ábra).
a. b - adott számok;
a_arr. b_arr - számjegyekből álló tömbök, amelyek számai tartalmazzák;
a_dig. b_dig - tömbök az azonosított számok információinak tárolására.
Algoritmus a probléma megoldásához:
A számok bontásra kerülnek a tömbökbe helyezett számokra. Ha a maradék a 10 alapon található, a szám alsó sorrendű számjegyét adja. Ebben az esetben a számok fokozatosan csökkennek, megszabadulva a jelenlegi alacsonyabb rendtől (div 10). Mivel a számok kivonása a végéről történik, azok a tömbök, amelyekbe be vannak írva, "lefelé" gördülnek a végén: először a tömb ötödik elemei vannak kitöltve, majd a negyedikek, és így tovább.
Annak érdekében, hogy azonos számjegyeket azonos számjegyekkel találjunk meg, elegendő összehasonlítani a tömbelemeket, amelyek két tömbön belül helyezkednek el. Ugyanakkor szükség van arra, hogy valahol el lehessen menteni az információkat azokról a kategóriákról, amelyeknek száma egybeesett. Két további tömböt (a_dig és b_dig) mutatunk be. Kezdetben a Pascal programnyelvben a tömbök tele vannak nullákkal. Hagyja, hogy ezeknek a tömböknek az elemei megfeleljenek a számjegyeknek. Ha a számjegy megtalált egy párat a második szám azonos számjegye között, akkor az egységek a tömbcella megfelelő bitjeire íródnak.
Az első szám sorának következő elemét vesszük. Ha az a_dig tömbhöz tartozó megfelelő elem nulla (ami azt jelenti, hogy nem volt véletlen egybeesés), akkor összehasonlítjuk a második számsor azon elemeivel, amelyek szintén nem találtak egy párat. Ha a keresés során a találatot találja, akkor a 2-es számjegyeket az a_dig és b_dig tömbök megfelelő celláiba kell helyezni.
Az azonos számjegyű azonos számjegyek száma megegyezik az a_dig tömb sorszámával.
A különböző számjegyű azonos számjegyek száma megegyezik az a_dig tömbben lévő ikrek számával.
A b_dig tömb ugyanazokat az információkat tartalmazza az egységek és kettők számával kapcsolatban. Mindazonáltal a kettő a tömb különböző elemeiben található.
Program a Pascal nyelven: