描述
外观数列是一个整数串数列,其中的每一项都是对前一项的描述。
例如:
第一项是:1 (初始项)
第二项是:11 (因为前一项是一个1)
第三项是:21 (前一项是两个1)
第四项是:1211 (前一项是一个2一个1)
第五项是:111221 (前一项是一个1一个2两个1)
第六项是:312211 (前一项是三个1两个2一个1)
....
题目给定输入为两个整数a和n(用半角逗号隔开),其中a是数列的首项,题目保证1<=a<=9,请编写程序输出该外观数列的第n项,其中1<=n<=30.
示例 1
输入:1,1
输出:1
示例 2
输入:3,3
输出:1113
instr = input()
inls = instr.split(',')
a = int(inls[0])
n = int(inls[1])
output = [a]
j = 1
tmp = []
while j < n:
# 逐项计算
i = 0
count = 0
flag = 0
while i <= len(output):
if i == len(output):
tmp.append(count)
tmp.append(flag)
else:
if i == 0:
count = 1
flag = output[0]
elif output[i] != flag:
tmp.append(count)
tmp.append(flag)
flag = output[i]
count = 1
elif output[i] == flag:
count += 1
i += 1
output.clear()
k = 0
while k < len(tmp):
output.append(tmp[k])
k += 1
tmp.clear()
j += 1
i = 0
while i < len(output):
print(output[i], end='')
i += 1
print()