45 lines
1.1 KiB
Text
45 lines
1.1 KiB
Text
FUNCTION RLEncode (i AS STRING) AS STRING
|
|
DIM tmp1 AS STRING, tmp2 AS STRING, outP AS STRING
|
|
DIM Loop0 AS LONG, count AS LONG
|
|
|
|
FOR Loop0 = 1 TO LEN(i)
|
|
tmp1 = MID$(i, Loop0, 1)
|
|
IF tmp1 <> tmp2 THEN
|
|
IF count > 1 THEN
|
|
outP = outP & TRIM$(STR$(count)) & tmp2
|
|
tmp2 = tmp1
|
|
count = 1
|
|
ELSEIF 0 = count THEN
|
|
tmp2 = tmp1
|
|
count = 1
|
|
ELSE
|
|
outP = outP & "1" & tmp2
|
|
tmp2 = tmp1
|
|
END IF
|
|
ELSE
|
|
INCR count
|
|
END IF
|
|
NEXT
|
|
|
|
outP = outP & TRIM$(STR$(count)) & tmp2
|
|
FUNCTION = outP
|
|
END FUNCTION
|
|
|
|
FUNCTION lookAndSay(BYVAL count AS LONG) AS STRING
|
|
DIM iii AS STRING, tmp AS STRING
|
|
|
|
IF count > 1 THEN
|
|
iii = lookAndSay(count - 1)
|
|
ELSEIF count < 2 THEN
|
|
iii = "1"
|
|
END IF
|
|
|
|
tmp = RLEncode(iii)
|
|
lookAndSay = tmp
|
|
END FUNCTION
|
|
|
|
FUNCTION PBMAIN () AS LONG
|
|
DIM v AS LONG
|
|
v = VAL(INPUTBOX$("Enter a number."))
|
|
MSGBOX lookAndSay(v)
|
|
END FUNCTION
|