程式設計題22 Kolakoski 序列(搜狐)

2021-09-24 16:48:15 字數 1295 閱讀 1759

kolakoski 序列是個自生成的無限序列。

例如,當給定的整數組為 [1, 2] 時,kolakoski 序列是這樣的:

[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,…]

如果我們將相鄰的相同的數字分成一組,那麼將會得到:

[[1],[2,2],[1,1],[2],[1],[2,2],[1],[2,2],[1,1],[2],[1,1],[2,2],[1],[2],[1,1],[2],[1],[2,2],[1,1],…]

可以看出,每組數字交替由 1, 2 組成。

接下來對每個分組求他的長度,得到:

[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,…]

可以看出,經過如上的變換後,數列保持不變。

對於其他給定的整數組,同樣可以用類似的方法構造 kolakoski 序列,例如給定整數組 [2, 3] 時:

[2,2,3,3,2,2,2,3,3,3,2,2,3,3,2,2,3,3,3,2,2,2,3,3,3,2,2,3,3,…]

給定整數組 [2, 1, 3, 1] 時,構造得到如下:

[2,2,1,1,3,1,2,2,2,1,3,3,1,1,2,2,1,3,3,3,1,1,1,2,1,3,3,1,1,…]

輸入由兩行組成:

第一行包括兩個正整數 n, m

第二行包括 m 個正整數 a

資料規模與限制:

0 < n < 10000

1 < m < 1000

0 < a[i] < 1000

a[i] 不等於 a[i + 1]

a[0] 不等於 a[m-1]

每行乙個數字,共 n 行

整數組 a 生成的 kolakoski 序列的前 n 項

示例1

30 4

2 1 3 1

221

1312

2213

3112

2133

3111

2133

112

不知道為什麼,編譯結果和牛客的參考一樣,就是c不過去???

#include int main(void)

; scanf("%d",&n);

scanf("%d",&m);

for (i=0;in)break;

} x++;

if (k > n)break;

} return 0;

}

程式設計題22 左旋轉字串

組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!public class...

C語言 程式設計練習22題

1 編乙個程式,輸入x的值,按下列公式計算並輸出y值 2 已知數a與b,由鍵盤輸入ab的值,交換它們的值,並輸出。3 給乙個不多於5位的正整數,要求 一 求它是幾位數,二 逆序列印出各位數字。4 利用條件運算完成此題 學習成績 90分的同學用a表示,60 89分之間的用b表示,60分以下的用c表示。...

程式設計題 數串

設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。如 n 3時,3個整數13,312,343,連成的最大整數為34331213。如 n 4時,4個整數7,13,4,246連線成的最大整數為7424613。有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數n n 100 第二行包含n個數 ...