PythonChallenge第10题
来源:互联网 发布:知彼而知己 打不开 编辑:程序博客网 时间:2024/05/01 13:32
点击题目链接
还是图片乱点+网页源码找到的题目。
根据:a = [1, 11, 21, 1211, 111221,
求len(a[30]) = ?
先找出a中个元素是什么规律的
目测,手算都找不出来什么规律。但是,数位增加真的很快的,还有就是只有12构成的数,然后就不知道怎么搞了。
网上看到如下的规律:
规律是:
1
11— 表示前一个数“1”是 1 个 1;
21— 表示前一个数“11”是 由 2 个 1 组成;
1211— 表示前一个数“21”是 由 1 个 2、1 个 1 组成;
111221— 即 11 12 21 ,表示前一个数“1211”是依次由 1 个 1,1 个 2, 2 个 1组成;
312211—即 31 22 11,表示前一个数“111221”是依次由 3 个 1,2 个 2, 1 个 1 组成;
所以,下一个数应填 13112221—即 13 11 22 21, 表示前一个数“312211”是依次由 1 个 3,1 个 1,2 个 2,2 个 1 组成;
同理,再下一个数根据“13112221”填 1113213211,表示前一个数“13112221”是依次由 1 个 1,1 个 3,2 个 1,3 个 2,1 个 1 组成。
想了好久不知道怎么搞的
维基百科链接:http://zh.wikipedia.org/zh-cn/%E5%A4%96%E8%A7%80%E6%95%B8%E5%88%97
在上面发现一个链接:http://oeis.org/A005150,下面有个别人写的Python程序。
def A005150(n): p="1" seq=[1] while(n>1): q='' idx=0 l=len(p) while(idx<l): start=idx idx=idx+1 while idx<l and p[idx]==p[start]: idx=idx+1 q=q+str(idx-start)+p[start] n,p=n-1,q seq.append(int(p)) return seq
上面的就是,返回的结果是1-n的位置的所有数据,修改下程序,可以只返回第n个位置的数,或者第n个位置数字的长度。
def A005150(n): p="1" #seq=[1] while(n>1): q='' idx=0 l=len(p) while(idx<l): start=idx idx=idx+1 while idx<l and p[idx]==p[start]: idx=idx+1 q=q+str(idx-start)+p[start] n,p=n-1,q #seq.append(int(p)) return p
改的很简单
>>> len(A005150(30))4462>>> len(A005150(29))3410>>> len(A005150(31))5808
还有个问题就是n=31的时候出的是30的长度,才能找到下一个的链接。知道了list 是从0下标开始的,a = [1, 11, 21, 1211, 111221, 求得是a[30]的长度,需要输入31才对。
下题链接:5808.html
- PythonChallenge第10题
- pythonchallenge 【第0题】
- pythonchallenge 【第1题】
- pythonchallenge 【第2题】
- pythonchallenge 【第3题】
- PythonChallenge第0题
- PythonChallenge第3题
- PythonChallenge第4题
- PythonChallenge第5题
- PythonChallenge第6题
- PythonChallenge第7题
- PythonChallenge第8题
- PythonChallenge第9题
- pythonchallenge--10
- pythonchallenge第0关
- [PythonChallenge]第0关
- [PythonChallenge]第1关
- [PythonChallenge]第2关
- 1.1 Abstract Factory(抽象工厂) -- 对象创建型模式
- Database Incarnations
- L脚本语言编写的简单数学函数库
- 通过类反射生成xml文件
- 开博那些事
- PythonChallenge第10题
- Linux帮助命令
- c++_sqrt实现判断素数函数
- svn客户端--TortoiseSVN的安装
- 软考复习专题十---算法设计
- Android L Phone 启动流程
- 使用浮动div元素来实现橡皮筋式截取选取框(鼠标监听事件)
- 【C语言总结】宏定义,预处理
- android 持久化保存cookie