報數的golang實現

2022-07-25 07:00:11 字數 1093 閱讀 8817

報數序列是乙個整數序列,按照其中的整數的順序進行報數,得到下乙個數。其前五項如下:

1.     1

2. 11

3. 21

4. 1211

5. 111221

給定乙個正整數 n(1 ≤ n ≤ 30),輸出報數序列的第 n 項。

注意:整數順序將表示為乙個字串。

輸入: 1

輸出: "1

"輸入:

4輸出:

"1211

"

理解題意:

首先我們還是列舉一下每個數的輸出吧

第幾次輸出11

211321

41211

5111221

6312211

713112221

81113213211

931131211131221

從上面我們可以看出來,對乙個數說出來有兩種情況:

那函式中重要的思想就是:

遍歷上一次的輸出

然後比較相鄰的數

如果是一樣的話,那就在找下一位

如果是不一樣的話,那就要新增到陣列中

核心**:

func say(bs byte) byte

//第二個引數是指有多少個一樣的

//(這裡需要注意一點,一定要加上'0',不然位元組不對,'0'代表的位元組是48,

//如果不加上'0',byte(y-x)就是byte(1),這是不對的)

//第三個引數是指說出來的那個數0'

), bs[x])

//跳過相同的數

x =y

}return

result

}

當然我們肯定要一開始就設定第一次的輸出為'1'

func countandsay(n int) string

bs := byte

for i := 2; i <= n; i++

return

string

(bs)

}

為什麼要用位元組陣列呢?因為轉字串簡單呀!!!

python實現報數

報數序列 n 1 1 n 2 11 讀做 1個1,記為11 n 3 21 讀作 2個1,記為21 n 4 1211 讀作 1個2,1個1,記為1211 現在要求給定乙個n 1 n 30 輸出報數序列的第n項。一步一步來,分塊講解 實質上先統計個數 在統計元素。coding utf 8 題目簡述 報數...

佇列實現報數遊戲

問題描述 有m個人,從1到m編號,按照編號順序圍成一圈。從第乙個人開始報數 從1報到n 凡報到n的人退出圈子。然後下乙個小朋友會繼續從 1 開始報數,直到只剩乙個人為止 問 最後留下的人的編號是幾號。具體方法 的注釋已經很詳細了。開乙個佇列不斷刪除,很簡單,稍微想一下或畫個草圖就ok了 includ...

約瑟夫環的實現《報數遊戲》

面試中經常會被問到報數遊戲。遂實現一下。問題描述 設有n個人圍坐一圈並按順時針方向從1到n編號,從第s個人開始進行1到m報數,報數到第m個人時,此人出圈,再從他的下乙個人重新開始1到m的報數,如此進行下去直到所有的人都出圈為止。現要列印出出圈次序。輸入 n 遊戲總人數 s 報數的起始編號 m 報數的...