利用Python打印大衍数列第n项
时间: 2023-06-19 19:02:58 浏览: 135
Printing big integer,简单python程序
大衍数列是指:1、11、21、1211、111221、312211、13112221、1113213211、31131211131221、……
其中,第一项是 1,第二项是 11,第三项是 21,第四项是 1211,以此类推。
要打印大衍数列的第n项,可以先从第三项开始,依次计算每一项,直到计算到第n项为止。具体代码如下:
```python
def daiyan(n):
if n == 1:
return '1'
elif n == 2:
return '11'
else:
s = daiyan(n-1) # 先求出前一项
result = '' # 用来存储当前项的字符串
count = 1 # 用来统计连续出现的数字个数
for i in range(1, len(s)):
if s[i] == s[i-1]: # 如果当前数字和前一个数字相同
count += 1 # 统计个数加1
else: # 如果不同
result += str(count) + s[i-1] # 将统计结果加入结果字符串中
count = 1 # 重置计数器
result += str(count) + s[-1] # 处理最后一个数字
return result
n = int(input("请输入要求的大衍数列的项数:"))
print("第{}项是:{}".format(n, daiyan(n)))
```
运行结果如下:
```
请输入要求的大衍数列的项数:10
第10项是:13211311123113112211
```
阅读全文