1. 程式人生 > >C++ 1008 陣列元素迴圈右移問題 (20)(20 分)

C++ 1008 陣列元素迴圈右移問題 (20)(20 分)

思路:

在輸入的時候就判斷移動之後每個元素的位置,直接輸入到指定位置之後輸出。

位置變換對應關係:

初始   變化後

0    N-M

1    N-M+1

2    N-M+2

...

...

M-1     N-1

-----------------------

M         0

M+1     1

...

...

N-1    N-M-1

注意點

1:

由於並沒有說明M<N,故應該確定其真實移動位數(N次一個迴圈)

2:注意中英文括號(程式設計時括號使用的中文,一開始沒檢查出來,花了好長時間),報錯形式如下

#include<iostream>
using namespace std;
int main()
{
  int n,m;
  cin >> n >> m;
  int a[n];
  m %= n;
  for (int i = m; i < n; i++) {
    cin >> a[i];
  }
  for (int i = 0; i < m; i++) {
    cin >> a[i];
    }
  for (int i = 0; i < n; i++) {
    cout << a[i];
    if (i != n - 1) 
      cout << " ";
  }
  return 0;
}

相關推薦

PAT (Basic Level) Practice 中文 1008 陣列元素迴圈問題 20 C++

1008 陣列元素迴圈右移問題 (20 分) 一個數組A中存有N(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(≥0)個位置,即將A中的資料由(A ​0 ​​ A ​1 ​​ ⋯A ​N−1 ​​ )變換為(A ​N−M ​​ ⋯A ​N−1 ​​ A ​

1008 陣列元素迴圈問題 20

1008 陣列元素迴圈右移問題 (20 分) 一個數組A中存有N(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(≥0)個位置,即將A中的資料由(A​0​​A​1​​⋯A​N−1​​)變換為(A​N−M​​⋯A​N−1​​A​0​​A​1​​⋯A​

1008 陣列元素迴圈問題 20

一個數組A中存有N(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(≥0)個位置,即將A中的資料由(A​0​​A​1​​⋯A​N−1​​)變換為(A​N−M​​⋯A​N−1​

【PAT】1008 陣列元素迴圈問題 20

1008 陣列元素迴圈右移問題 (20 分) 一個數組A中存有N(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(≥0)個位置,即將A中的資料由(A​0​​A​1​​⋯A​N−1​​)變換為(A​N−M​​⋯A​N−1​​A​0​​A​1​​⋯A

C++ 1008 陣列元素迴圈問題 (20)20

思路: 在輸入的時候就判斷移動之後每個元素的位置,直接輸入到指定位置之後輸出。 位置變換對應關係: 初始   變化後 0    N-M 1    N-M+1 2    N-M+2 ... ... M-1     N-1 ----------------

PAT乙級1008 陣列元素迴圈問題C語言實現

總結:1、思路:定義陣列空間時大一些,將前(N-M)個數移到N個數後。即利用本陣列多餘的空間來儲存數字,也相當於構建了                  另一個數組的作用。            2、坑點:不要想當然地認為N>M,所以在M>N時需要對M進行處

7-52 陣列元素迴圈問題 20

7-52 陣列元素迴圈右移問題 (20 分) 一個數組A中存有N(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(≥0)個位置,即將A中的資料由(A​0​​A​1​​⋯A​N−1​​)變換為(A​N−M​​⋯A​N−1​​A​0​​A​1​​⋯A​

陣列元素迴圈問題20

#include<stdio.h>int main(){  int n,m;  scanf("%d%d",&n,&m);  int a[101],i,spa=n-1;  for(i=0;i<n;i++)  {    scanf("%d",&a

PAT Basic 1008. 陣列元素迴圈問題 (20)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目一個數組A中存有N(N>0)個整數,在不允許使用另外陣列的前提下,將每個

1008 陣列元素迴圈問題 ——CC++實現

題目 1008 陣列元素迴圈右移問題 (20 point(s)) 一個數組A中存有N(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(≥0)個位置,即將A中的資料由(A​0​​A​1​​⋯A​N−1​​)變換為(A​N−M​​⋯A​N−1​​A​0​​

PAT 1008 陣列元素迴圈問題 C++

一個數組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個

PAT 乙級 1008陣列元素迴圈問題 C語言

1008. 陣列元素迴圈右移問題 (20) 題目: 一個數組A中存有N(N>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(M>=0)個位置,即將A中的資料由(A0 A

PAT 乙級 1008. 陣列元素迴圈問題 (20) Java版

一個數組A中存有N(N>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(M>=0)個位置,即將A中的資料由(A0A1……AN-1)變換為(AN-M …… AN-1 A0 A1……AN-M-1)(最後M個數迴圈移至最前面的M個位置)。如果需要

PAT (Basic Level) Practise 中文1008. 陣列元素迴圈問題 (20)

一個數組A中存有N(N>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(M>=0)個位置,即將A中的資料由(A0A1……AN-1)變換為(AN-M …… AN-1 A0 A1……AN-M-1)(最後M個數迴圈移至最前面的M個位置)。如果需要考慮程式移動資料的次數儘量少,要如何

PAT basic 1008. 陣列元素迴圈問題 (20)

小小宣告:某渣大學生,斗膽獻上自己的程式碼~~~程式碼多餘處,多多包涵。 一個數組A中存有N(N>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(M>=0)個位置,

1008. 陣列元素迴圈問題 (20)--PAT乙級

1008. 陣列元素迴圈右移問題 (20) 時間限制 400 ms 記憶體限制 65536 kB 程式碼長度限制 8000 B 判題程式 Standard 一

1008 陣列元素迴圈問題 (20)20

一個數組A中存有N(N&gt0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(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個數迴

PAT 乙級 1008. 陣列元素迴圈問題 (20)

我真的自從17年考研開始,就幾乎再也沒寫過C++,基本上都是做java,天天eclipse,因為有軟體測試課,還有生產實習去公司裡做小遊戲,陷入了JAVA的世界幾乎把我的C++語法和演算法快忘光了。考研考的不好。就像,人類一敗塗地。開學準備水一波天梯賽,開始撿一撿我的程式設計

PAT(乙級)1008:陣列元素迴圈問題 (20)

1008. 陣列元素迴圈右移問題 (20)時間限制400 ms記憶體限制65536 kB程式碼長度限制8000 B判題程式Standard一個數組A中存有N(N>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(M>=0)個位置,即將A中的資料由(

PAT乙級1008陣列元素迴圈

題目描述: 一個數組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−