37 lines
1 KiB
Text
37 lines
1 KiB
Text
LookAndSay := function(s)
|
|
local c, r, cur, ncur, v;
|
|
v := "123";
|
|
r := "";
|
|
cur := 0;
|
|
ncur := 0;
|
|
for c in s do
|
|
if c = cur then
|
|
ncur := ncur + 1;
|
|
else
|
|
if ncur > 0 then
|
|
Add(r, v[ncur]);
|
|
Add(r, cur);
|
|
fi;
|
|
cur := c;
|
|
ncur := 1;
|
|
fi;
|
|
od;
|
|
Add(r, v[ncur]);
|
|
Add(r, cur);
|
|
return r;
|
|
end;
|
|
|
|
LookAndSay("1"); # "11"
|
|
LookAndSay(last); # "21"
|
|
LookAndSay(last); # "1211"
|
|
LookAndSay(last); # "111221"
|
|
LookAndSay(last); # "312211"
|
|
LookAndSay(last); # "13112221"
|
|
LookAndSay(last); # "1113213211"
|
|
LookAndSay(last); # "31131211131221"
|
|
LookAndSay(last); # "13211311123113112211"
|
|
LookAndSay(last); # "11131221133112132113212221"
|
|
LookAndSay(last); # "3113112221232112111312211312113211"
|
|
LookAndSay(last); # "1321132132111213122112311311222113111221131221"
|
|
LookAndSay(last); # "11131221131211131231121113112221121321132132211331222113112211"
|
|
LookAndSay(last); # "311311222113111231131112132112311321322112111312211312111322212311322113212221"
|