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

    一个数组A中存有N(>)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥)个位置,即将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)和M(≥);第2行输入N个整数,之间用空格分隔。

    输出格式:

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

    输入样例:

    6 2
    1 2 3 4 5 6
    

    输出样例:

    5 6 1 2 3 4
     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<cstring>
     4 using namespace std;
     5 
     6 int main() {
     7     int a[100];
     8     memset(a, 0, sizeof(a));
     9     int n, m;
    10     std::cin >> n;  //输入数据的个数
    11     getchar();
    12     std::cin >> m;    
    13     m = m % n;        //向右平移个数
    14 
    15     //向数组中输入数据
    16     for (int i = 0; i < n-1; i++) {
    17         std::cin >> a[i];
    18         getchar();
    19     }
    20     std::cin >> a[n - 1];
    21     
    22     //输出数据
    23 
    24     for (int j = n - m; j <= n - 1; j++) {
    25         std::cout << a[j]<<" ";
    26     }
    27     for (int k = 0; k <= n - m - 2; k++) {
    28         std::cout << a[k]<<" ";
    29     }
    30     std::cout << a[n - m - 1];
    31 
    32     return 0;
    33 }
     
  • 相关阅读:
    Python学习-day10
    python学习-day9
    Python学习-day8
    Python学习-day7
    Python学习-day6
    Django2
    Django讲解
    JQuery讲解
    前端Day2
    前端Day1
  • 原文地址:https://www.cnblogs.com/oaoa/p/10650894.html
Copyright © 2011-2022 走看看