2 notes &
math puzzle
In high school a classmate showed me this math puzzle:
Question: How next line should look like?
1
11
21
1211
111221
312211
13112221
<Next Line>?
Fun fact: 50th line has 894810 numbers :)
Solution:
def gen_next_line(line):
next_line = ”
for i in range(len(line)):
c = line[i]
if len(next_line) > 1 and next_line[-1] == c:
count = int(next_line[-2])
next_line = next_line[:-2] + str(count + 1) + c
else:
next_line += ‘1’ + c
return next_line
def main(line_no):
line = ‘1’
if line_no > 1:
for i in range(1, line_no):
line = gen_next_line(line)
print line
if __name__ == ‘__main__’:
if len(sys.argv) != 2:
print ‘Usage: %s line_no’ % __file__
else:
main(int(sys.argv[1]))