計數和數數

“伯爵說”序列如下:1,11,21,1211,111221, \ldots1,11,21,1211,111221,…。其1讀作one 1或者1111讀作two 1s或者2121讀作one 2, one 1或者1211

輸入格式

多組輸入,讀到文件結束。每組輸入給定一個整數 n(1 \leq n \leq 30)n(1≤n≤30)。

輸出格式

輸出第 nn 個序列。注意,整數序列以字符串的形式表示。

樣例輸入

6

樣例輸出

312211

我這一題是用python寫的,感覺方便一點。

提示是類似斐波那契,沒看出來就放飛自我的寫了。。

def c(s):
    n = 0
    c = ''
    ans = ""
    for str in s:
        if (c == ''):
            c = str
        if (str == c):
            n += 1
        else:
            ans = ans + n.__str__() + c
            c = str
            n = 1
    ans = ans + n.__str__() + c
    return ans



while True:
    s = '1'
    try:
        n = int(input())
    except:
        break
    while n != 1:
        #print(s)
        s = c(s)
        n -= 1
    print(s)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章