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

PTA 之 数组元素循环右移问题

时间:2025-01-20 15:21:46浏览次数:1  
标签:右移 int PTA 循环 整数 数组 输入

一个数组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
代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB

 

解答示例:

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int N, M;
 8     cin >> N >> M;
 9 
10     int* puArr = new int[N];
11     for(int i = 0; i < N; ++i)
12     {
13         cin >> puArr[i];
14     }
15 
16     for(int i = 0; i < N; ++i)
17     {
18         cout << puArr[((i - M) % N + N) % N];;
19         if( i < N - 1)
20         {
21             cout << " ";
22         }
23     }
24 
25     delete []puArr;
26 
27     return 0;
28 }
View Code

 

标签:右移,int,PTA,循环,整数,数组,输入
From: https://www.cnblogs.com/Arthurian/p/18681445

相关文章

  • 写一个方法,传入数字x,从一个一维数组里找到两个数字符合“n1 + n2 = x”
    在前端开发中,你可以使用JavaScript来编写这个方法。下面是一个简单的实现,它接受一个数字x和一个一维数组arr作为参数,并尝试在数组中找到两个数字,使它们的和等于x。如果找到了这样的两个数字,它会返回一个包含这两个数字的数组;如果没有找到,它会返回null。functionfindTwoNumbersTh......
  • 树状数组板子(单点增加+范围查询)
    用于解决范围数字和与单点增加问题(复杂度O(logn))build方法(构造树状数组)voidbuild(){ for(inti=1,v;i<=n;i++){ cin>>v; add(i,v); }}lowbit方法(获取一个二进制数最低位的1的状态)intlowbit(intx){ returnx&(-x);}add方法(单点增加)voidadd(inti,int......
  • 全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用技巧)
    二、一维数组应用技巧2:打标记实战训练1—开关灯问题描述:有M个从1到M依次编号的人参加一项游戏。将K盏从1到K依次编号的灯(K和M均为正整数,M≤K≤5000)进行一系列的熄灭与打开的操作,游戏开始时均处于亮灯的状态;第一个人(1号)将灯全部熄灭;第二个人(2号)将编号为2的倍数的灯做......
  • 算法随笔_12:最短无序子数组
    上一篇: 算法随笔_11:字符串的排列-CSDN博客题目描述如下:给你一个整数数组nums,你需要找出一个连续子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的最短子数组,并输出它的长度。示例1:输入:nums=[2,6,4,8,10,9,15]输出:5解释:......
  • 代码随想录:将有序数组转化为二叉搜索树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*......
  • C++:PTA L1-086 斯德哥尔摩火车上的题
    L1-086斯德哥尔摩火车上的题上图是新浪微博上的一则趣闻,是瑞典斯德哥尔摩火车上的一道题,看上去是段伪代码:s=''a='1112031584'for(i=1;i<length(a);i++){if(a[i]%2==a[i-1]%2){s+=max(a[i],a[i-1])}}goto_url('www.multisoft.se/'+......
  • 7-50 三天打鱼两天晒网PTA
    中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?输入格式:输入在一行中给出一个不超过1000的正整数N。输出格式:在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并......
  • 7-51 输出三角形面积和周长PTA
    本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中,任意两边之和大于第三边。三角形面积计算公式:area=s(s−a)(s−b)(s−c)​,其中s=(a+b+c)/2。输入格式:输入为3个正整数,分别代表三角形的3条边a、b、c。输出格式:如果输入的边能构成......
  • 指针应用-查找数组元素(PTA)C语言
    编写一个名为findX的函数,该函数的参数p指向一个int数组,数组的容量n由参数2指定。在该数组中,查找数据x所在的位置。如果数据x有出现多次,则返回其最后一次出现的位置对应的下标。如果没有找到,则固定返回-2。intfindX(int*p,intn,intx);函数接口定义:intfindX(int*p,intn......
  • 【华为OD-E卷 - 找出两个整数数组中同时出现的整数 100分(python、java、c++、js、c)】
    【华为OD-E卷-找出两个整数数组中同时出现的整数100分(python、java、c++、js、c)】题目现有两个整数数组,需要你找出两个数组中同时出现的整数,并按照如下要求输出:有同时出现的整数时,先按照同时出现次数(整数在两个数组中都出现并目出现次数较少的那个)进行归类,然后按照出......