zoukankan      html  css  js  c++  java
  • 1008 数组元素循环右移问题

    1008 数组元素循环右移问题 (20分)
     

    一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(0)个位置,即将A中的数据由(A0​​A1​​AN1​​)变换为(ANM​​AN1​​A0​​A1​​ANM1​​)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?

    输入格式:

    每个输入包含一个测试用例,第1行输入N(1N100)和M(0);第2行输入N个整数,之间用空格分隔。

    输出格式:

    在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。

    输入样例:

    6 2
    1 2 3 4 5 6
    
     

    输出样例:

    5 6 1 2 3 4
    
     

    题目较简单,直接看代码

     1 #include<iostream>
     2 using namespace std;
     3 int main() 
     4 {
     5     int N,M;
     6     int a[100];
     7     cin>>N>>M;
     8     for(int i=0;i<N;i++)
     9         cin>>a[i];
    10     if(N==1)   //a中只有一个元素直接输出
    11     {
    12         cout<<a[0];
    13         return 0;
    14     }
    15     int tem;
    16     for(int i=1;i<=M;i++)  //外层控制右移M个位置
    17     {
    18         tem=a[N-1];
    19         for(int j=N-1;j>=0;j--)
    20             a[j]=a[j-1];
    21         a[0]=tem;
    22     }
    23     for(tem=0;tem<N-1;tem++)
    24         cout<<a[tem]<<" ";
    25     cout<<a[tem];
    26     return 0;
    27 }

    ac了

  • 相关阅读:
    CCF 认证
    ZOJ Light Bulb
    codeforce 605BE. Freelancer's Dreams
    HDU2546——背包DP——饭卡
    转载DD大神背包九讲
    背包九讲
    zstu4186——线段树——表白计划(未完成)
    zstu4189——后缀表达式——逻辑运算
    蛇形矩阵
    zs深入浅出学算法022——DFS———汉诺塔问题II
  • 原文地址:https://www.cnblogs.com/buanxu/p/12812611.html
Copyright © 2011-2022 走看看