Keresés

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

  • Delila_1

    veterán

    válasz Tompkins #18164 üzenetére

    Közben sok számmal kipróbáltam. Vannak olyanok, ahol vagy egyáltalán nincs megoldás, vagy túl nagy az eredmény. A dimenzionálásnál az Integer-ek helyére Long-ot írtam, és megadtam egy határt (1000), ami után ne számoljon tovább, hanem írjon ki egy szöveget. Ezt a jelölt sorban módosíthatod a türelmednek megfelelően. :D

    Function Tukroz(szam As Long)
    Dim ford, b As Long, darab As Long, osszeg As Long, szam1 As Long
    szam1 = szam
    If Len(szam1) = 0 Then Tukroz = 0: GoTo Vege
    For b = Len(szam1) To 1 Step -1
    ford = ford & Mid(szam, b, 1)
    Next
    If szam = ford * 1 Then
    Tukroz = 0: GoTo Vege
    Else
    Do
    osszeg = szam1 + ford
    ford = ""
    darab = darab + 1
    If darab > 1000 Then 'Itt módosíthatsz
    Tukroz = "Nincs megoldás, vagy 1000-nél nagyobb": GoTo Vege
    Else
    For b = Len(osszeg) To 1 Step -1
    ford = ford & Mid(osszeg, b, 1)
    Next
    szam1 = osszeg
    If szam1 = ford * 1 Then
    Tukroz = darab: GoTo Vege
    End If
    End If
    Loop While szam1 <> ford * 1
    End If
    Tukroz = darab

    Vege:
    End Function

  • Delila_1

    veterán

    válasz Tompkins #18164 üzenetére

    Írtam egy funkciót rá, de csak az általad megadott számokkal ellenőriztem. Azokkal OK.

    Function Tukroz(szam As Integer)
    Dim ford, b As Integer, darab As Integer, osszeg As Long, szam1 As Long
    szam1 = szam
    If Len(szam1) = 0 Then Tukroz = 0: GoTo Vege
    For b = Len(szam1) To 1 Step -1
    ford = ford & Mid(szam, b, 1)
    Next
    If szam = ford * 1 Then
    Tukroz = 0: GoTo Vege
    Else
    Do
    osszeg = szam1 + ford
    ford = ""
    darab = darab + 1
    For b = Len(osszeg) To 1 Step -1
    ford = ford & Mid(osszeg, b, 1)
    Next
    szam1 = osszeg
    If szam1 = ford * 1 Then
    Tukroz = darab: GoTo Vege
    End If
    Loop While szam1 <> ford * 1
    End If
    Tukroz = darab

    Vege:
    End Function

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