首页 > 其他分享 >1008 数组元素循环右移问题

1008 数组元素循环右移问题

时间:2022-10-02 17:00:52浏览次数:46  
标签:右移 int 整数 循环 数组 1008 输入

1.1题目

1.2题解

1.3代码

 

 

 

题目:

一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0​A1​⋯AN−1​)变换为(AN−M​⋯AN−1​A0​A1​⋯AN−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、先弄清楚右移1位,通过循环m此自然实现了右移m位           代码:
#include<stdio.h>
int main(){
    int n,m;
    int a[105];
    bool flag = false;
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    while(m--){
        int temp = a[n-1];
        for(int i=n-1; i>0; i--){
            a[i] = a[i-1];
        }
        a[0] = temp;
    }
    for(int i=0; i<n; i++){
        flag == false ? flag = true : printf(" ");
        printf("%d",a[i]);
    }
    return 0;
}

 

     

标签:右移,int,整数,循环,数组,1008,输入
From: https://www.cnblogs.com/yccy/p/16749017.html

相关文章

  • 打印数组的所有子集
    打印数组的所有子集作者:Grey原文地址:博客园:打印数组的所有子集CSDN:打印数组的所有子集无重复值情况题目描述见:LeetCode78.Subsets主要思路定义递归函数voidp......
  • java将一个有序数组按是否连续进行分组
    代码:importjava.util.Arrays;importjava.util.Comparator;importjava.util.List;/***@authorliyinlong*@since2022/8/229:45上午*/publicclassSemTest{......
  • 后缀数组小结
    后缀数组小结借用了一下别人的\(\rmblog\)。简介介绍一下基本数组。我们把原串\(\rmA\)的所有后缀按字典序从小到大排个序,则排名为\(\rmi\)的字符串是以第\(......
  • 代码随想录 哈希表理论基础,有效的字母异位词(LeetCode 242),两个数组的交集 (LeetCode
    哈希表理论基础哈希表是根据关键码的值而直接进行访问的数据结构。哈希碰撞拉链法拉链法就是要选择适当的哈希表的大小,这样既不会因为数组空值而浪费大量内存,也不会......
  • 前端中数组的方法之 --- Array.prototype.reduce()
    参数:reduce((previousValue,currentValue,currentIndex,array)=>{/*…*/},initialValue)回调函数:previousValue:上一次调用 callbackFn 时的返回值。在第......
  • 数组操作の旋转二维数组
    一、题目描述:​​旋转图像​​给定一个n × n的二维矩阵 matrix表示一个图像。请你将图像顺时针旋转90度。你必须在原地旋转图像,这意味着你需要直接修改输入的二......
  • 机试题 三数之和变形-三数和赛高数组01
    数组a对任意的i、j、k都能找到l,使得ai+aj+ak=al,那么这个数组就是被称为三数和赛高数组,特别的i、j、k需要满足(1<=i<j<k<=n,1<=l<=n)。输入:首先t(1......
  • 机试题 三数之和变形-三数和赛高数组02 存在
    数组a存在i、j、k能找到l,使得ai+aj+ak=al,那么这个数组就是被称为三数和赛高数组,特别的i、j、k需要满足(1<=i<j<k<=n,1<=l<=n)。输入:首先t(1<=......
  • 稀疏数组
    稀疏数组packagearray;importjava.util.Arrays;publicclassSparse{publicstaticvoidmain(String[]args){//创建二维数组System.out.p......
  • Java 数组
    1.数组的定义数组是相同类型数据的有序集合。数字描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作数组元素,每一个数组元素可以通过......