Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Mutt

    senior tag

    válasz Tompkins #18176 üzenetére

    Szia,

    A tükörszámos feladványra az én megoldásomat innen tudod letölteni.

    Nem UDF-el, hanem a SZORZATÖSSZEG függvénnyel állítom elő a tükörképet és utána már csak
    simán összeadás és összehasonlítások vannak benne.

    A tükörkép képlete ami összetett egyedül (A2-ben van az eredeti szám):
    =SZORZATÖSSZEG(KÖZÉP(A2;1+HOSSZ(A2)-SOR(A$1:INDIREKT("A"&HOSSZ(A2)));1)*10^(HOSSZ(A2)-SOR(A$1:INDIREKT("A"&HOSSZ(A2)))))

    Ez a képlet 2 részből áll:
    - az első része a számot egy karakter hosszúságra bontja és megfordítja, tehát pl. a 1766-ból a {6;6;7;1}
    tömböt adja vissza. A fordítás egyszerűen úgy műkődik hogy hátulról kezdem el olvasni a karaktereket.
    - a második része (10^HOSSZ...) pedig a helyiértéknek megfelelő szorzószámot állítja elő, vagyis {10^3;10^2;10^1;10^0}.

    A többit a szorzatösszeg magától teszi vagyis a számokat összeszorozza (6*1000+6*100+7*10+1*1).

    A tükörszám ismeretében már lehet számolni az összegét az eredetinek és tükrének (C-oszlop), majd a kapott számot tükrözni (D-oszlop). A két számot összehasonlítva pedig lehet eldönteni, hogy kell-e további tükrözéseket végrehajtani (E-oszlopban 1-et íratok ha kell, 0-t ha már nem). Az E-oszlopban lévő ciklusok száma megadja, hogy hányszor tükröztünk. Max. 300 tükrözést hajt végre a fájlom, de ha többet akarsz akkor másold le a képleteket.

    üdv.

  • Delila_1

    veterán

    válasz Tompkins #18176 üzenetére

    Megnéztem lépésenként. Mikor a 97-es értéknél az összeg 14003, ennek a hosszát 4-nek értékeli a tükrözésnél, ezért a tükörképét 41-nek hozza ki. A

    For b = Len(osszeg) To 1 Step -1

    sort (Do-Loop cikluson belül) megváltoztattam,

    For b = Len(osszeg & "") To 1 Step -1

    lett, így hozza a 6 db-os értéket. 395-nél és 584-nél 7 az érték.

    Az

    If Len(szam1) = 0 Then Tukroz = 0: GoTo Vege

    sorban is a stringgé alakított forma hosszától indítom a ciklust:

    If Len(szam1 & "") = 0 Then Tukroz = 0: GoTo Vege

Új hozzászólás Aktív témák