python3面试题 按规律写出下一个数1,11,21,1211,111221
2021/6/13 1:21:08
本文主要是介绍python3面试题 按规律写出下一个数1,11,21,1211,111221,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
观察下面数字的规律
1
11
21
1211
111221
第一项是数字1
描述前一项,这数是1,即“1个1”,记作“11”
描述前一项,这数是11,即“2个1”,记作“21”
描述前一项,这数是21,即“1个2,1个1”,记作“1211”
描述前一项,这数是1211,即“1个1,1个2,2个1”,记作“111221”
用Python实现前N(N=10)个
方式1:从高位起,先统计某一个数字的次数
再循环5次,即实现前10;
a=[1,11,21,1211,111221] for i in range(5): n = str(a[-1]) #取列表中的最后一个数字,并转换为字符串; cn=len(n) #长度 # print(n) nstr='' count=1 for j in range(cn-1): # print(n[j]) if n[j]==n[j+1]: #比较相邻的两数,相等 count+=1 if j==cn-2: nstr+=str(count)+str(n[j+1]) # print(count) else: #不相等,则下入新的字符串中 nstr+=str(count)+str(n[j]) if j==cn-2: nstr += str(1) + str(n[j+1]) count=1 a.append(int(nstr)) #列表追加为整数 # print(nstr) print(a)
运行结果
[1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131221, 13211311123113112211]
方式2:将相同数字的分为一组;如,a='111221', ['111','22','1']
a=[1,11,21,1211,111221] for m in range(5): b=str(a[-1]) newl=[] zstr="" newstr="" for i in b: if len(zstr)==0: zstr=i else: if i==zstr[0]: zstr+=i else: newl.append(zstr) zstr=i newl.append(zstr) # print(zstr) # print(newl) for i in newl: newstr+="{}{}".format(len(i),i[0]) a.append(newstr) print(a)
运行结果
[1, 11, 21, 1211, 111221, '312211', '13112221', '1113213211', '31131211131221', '13211311123113112211']
这篇关于python3面试题 按规律写出下一个数1,11,21,1211,111221的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享