zoukankan      html  css  js  c++  java
  • a[0]=1,a[1]=11,a[2]=21,a[3]=1211找出规律,输入下标,得出对应的值

    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
  • 相关阅读:
    eclips断点调试
    单位换算
    信息论与编码复习
    嵌入式学习笔记
    DAVINCI项目日志
    英语考试方法
    虚拟机安装Ubuntu的上网设置(有线网络和无线网络)
    重装系统必须备份的几种数据
    linux笔记
    word应用技巧
  • 原文地址:https://www.cnblogs.com/lag1/p/14078986.html
Copyright © 2011-2022 走看看