练习题 数列

练习题39

有一个数列A[n] 从A[0]开始每一项都是一个数字 数列中A[n+1]都是A[n]的描述 其中A[0]=1 规则如下 A[0]:1 A[1]:11 含义其中A[0]=1是1个1 即11 表示A[0]从左到右连续出现了1次1 A[2]:21 含义其中A[1]=11是2个1 即21 表示A[1]从左到右连续出现了2次1 A[3]:1211 含义其中A[2]从左到右是由一个2和一个1组成 即1211 表示A[2]从左到右连续出现了一次2又连续出现了一次1 A[4]:111221 含义A[3]=1211 从左到右是由一个1和一个2两个1 即111221 表示A[3]从左到右连续出现了一次1又连续出现了一次2又连续出现了2次1

         输出第n项的结果
         0<= n <=59
         输入描述:
         数列第n项   0<= n <=59
         4
         输出描述
         数列内容
         111221

""" 解题思路,先写一个函数testnum用来计算下一个字符串是什么,对每个字符进行一一遍历,如果遇见跟前1个不一样的 那么中断计数,并将该字符的数量和字符都以字符的形式加入列表 """ def testnum(str1): list1=[] i=0 while i<len(str1): chr1=str1[i] count=1 i+=1 while i<len(str1): if str1[i]!=chr1: break else: i+=1 count+= 1 list1.append(str(count)) list1.append(chr1) res=''.join(list1) return res

print(testnum(str1='1211'))

n=int(input()) listres=[] for i in range(n):

if i == 0:
    listres.append(testnum('1'))
else:
    listres.append(testnum(listres[i-1]))

print(listres[n-1])

全部评论

相关推荐

05-07 19:10
已编辑
中国科学技术大学 C++
silly01:现在先去 momenta,8-9月去鹅找日常实习,八股文算法背好了你这随便进。不过建议补充一下后端知识,MySQL、Redis看下八股,再补个6824,加点go后台的技术栈,9月随便进大厂。CPP后端只能来WXG
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务