def count(n): a=[1,11] #初始化 if n==0: return a[0] if n==1: return a[1] for i in range(2,n+1): #每遍历一次得出下一个值,当n=3时,第一次由a[1]先得出a[2],下次由a[2]得出a[3] s=str(a[i-1]) #得到列表上一个值,并变成字符串 #print(s) l=len(s) #字符串的长度,用来控制判断遍历的次数,2位则判断1次 cnt=1 #记录相同字符的个数 tmp='' #记录结果 for j in range(l-1): #思路是每次添加判断的前一个字符,最后一位时添加判断2个字符 if s[j]==s[j+1]: #比如a[0]和a[1]相同则cnt+1 cnt+=1 else: tmp+=str(cnt) #字符不同时把当前或上次判断好的结果添加到tmp tmp+=s[j] cnt=1 if (j+2)==l: #字符不同且是最后一次遍历时添加末位字符到tmp tmp+=str(cnt) tmp+=s[j+1] if s[j]==s[j+1]: #遍历结束代表已到末位,字符相同添加到tmp tmp+=str(cnt) tmp+=s[j] a.append(int(tmp)) #把循环一次得到的值添加到数组,每次循环可以得到一个 return a[n] while True: try: n=int(input()) print(count(n)) except: break