PAT 乙級練習題 1008 陣列元素迴圈右移問題

2021-09-02 20:39:38 字數 862 閱讀 7836

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

輸入描述

每個輸入包含乙個測試用例,第1行輸入n(1≤n≤100)和m(≥0);第2行輸入n個整數,之間用空格分隔。

輸出描述

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

輸入樣例

6 2

1 2 3 4 5 6

輸出樣例

5  6  1  2  3  4

1) 讀入 n 和 m 後令 m = m % n,保證 m < n;

2) 將陣列分成 n-m 至 n-1和 0 至 n-m-1兩組分別輸出。

#includeint main()

for( i = n - m; i < n; i++ ) //輸出 n - m 號到 n - 1 號

for( i = 0; i < n - m; i++) //輸出 0 號到 n - m - 1 號

return 0;

}

浙大PAT練習題1008

nowcoder小時候走路喜歡蹦蹦跳跳,他最喜歡在樓梯上跳來跳去。但年幼的他一次只能走上一階或者一下子蹦上兩階。現在一共有n階台階,請你計算一下nowcoder從第0階到第n階共有幾種走法。對應每個輸入包括乙個輸出。為redraiment到達第n階不同走法的數量。當你跳一格時,只有一種方法,定為f ...

PAT 乙級練習題 1005

當我們驗證卡拉茲猜想的時候,為了避免重複計算,可以記錄下遞推過程中遇到的每乙個數。例如對n 3進行驗證的時候,我們需要計算3 5 8 4 2 1,則當我們對n 5 8 4 2進行驗證的時候,就可以直接判定卡拉茲猜想的真偽,而不需要重複計算,因為這4個數已經在驗證3的時候遇到過了,我們稱5 8 4 2...

PAT 乙級練習題 1007

讓我們定義 dn 為 dn pn 1 pn,其中 pi 是第i個素數。顯然有 d1 1 且對於n 1有 dn 是偶數。素數對猜想 認為 存在無窮多對相鄰且差為2的素數 現給定任意正整數n 105 請計算不超過n的滿足猜想的素數對的個數。輸入格式 每個測試輸入包含1個測試用例,給出正整數n。輸出格式 ...