對於一組整數的移動後輸出,一種新解法,以及陣列解法

2021-09-30 01:17:11 字數 871 閱讀 5371

乙個陣列a中存有n(n>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移m(m>=0)個位置,即將a中的資料由(a0 a1……an-1)變換為(an-m …… an-1 a0 a1……an-m-1)(最後m個數迴圈移至最前面的m個位置)。如果需要考慮程式移動資料的次數盡量少,要如何設計移動的方法?

輸入格式:每個輸入包含乙個測試用例,第1行輸入n ( 1<=n<=100)、m(m>=0);第2行輸入n個整數,之間用空格分隔。

輸出格式:在一行中輸出迴圈右移m位以後的整數序列,之間用空格分隔,序列結尾不能有多餘空格。

輸入樣例:

6 21 2 3 4 5 6

輸出樣例:

5 6 1 2 3 4

非陣列解法

#include

intmain()

for(i = n - m%n; i < n; i++

)for

(i =

0; i < n - m%n -

1; i++

)printf

("%d"

, a[n - m%n]);

//需要注意的是要防止最後乙個數後還有空格,於是單獨輸出最後乙個數

return0;

}

一般陣列解法

#include

intmain()

for(i =

0; i < m; i++

)else}}

for(i =

0; i < n -

1; i++

)printf

("%d"

, a[n -1]

);return0;

}

一種定時更新一組狀態的方法

定時更新一組狀態一般用於狀態機執行的判定條件 實現機制為 利用一硬體定時器作為時基,該時基選取適合狀態更新頻率,以該時基為累加週期,待累加週期變數值滿足各狀態更新週期時更新各狀態。具體實現為 以各狀態更新週期為物件,對累加週期變數取餘,以結果0為依據更新各狀態,累加週期變數清0依據為各狀態更新週期的...

一種新的乘法

做厭了乘法計算題的卡特,有一天突發奇想,創造了一種新的乘法運算法則。在這套法則裡,x y等於乙個取自x 乙個取自y的所有數字對的乘積的和。比方說,123 45等於1 4 1 5 2 4 2 5 3 4 3 5 54。對於2個給定的數x y 1 x,y 長整型最大數 你的任務是,用新的乘法法則計算x ...

20200413 將一組資料排序後輸出到檔案1

之前的c 版本包括c 11,都不支援檔案的複雜操作 例如建立目錄 但從c 17開始新增了filesystem,該模組支援檔案的複雜操作。本文牽扯到兩種技術,檔案操作與排序。1 將檔案中的一組數字排序後輸出到另一檔案中去。答 首先假設輸入檔案為 input file.txt 裡面內容為一組整型數字 1...