PAT乙级 1008 数组右移

PAT乙级 1008 数组元素循环右移问题 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0​​A1​​⋯AN−1​​​)变换为(AN−M​​⋯AN−1​​A0​​A1​​⋯AN−M−1​​)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 阅读详情

题目:一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,
将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1……AN-1)
变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
输入格式:每个输入包含一个测试用例,第1行输入N ( 1<=N<=100)、M(M>=0);第2行输入N个整数,之间用空格分隔。

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

输入样例:
6 2
1 2 3 4 5 6
输出样例:
5 6 1 2 3 4

  • 试用vector函数
    结果有段错误,自己测试通过,不晓得是哪里出错
#include <vector>
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
    int N, op;
    int x=0;
    scanf("%d %d", &N, &op);
    int b[1000];
    for (int i = 0; i<N; i++)
    {
        cin >> b[i];
    }
    vector<int>a;
    for (int i = 0; i < N; i++)
    {
        if ((i + op) / N == 0)
        {
            a.push_back(b[i]);
        }
        else if ((i + op) / N == 1)
        {
            x = (i + op) % N;
            a.insert(a.begin() + x, b[i]);
        }
    }
    int i;
    for (i = 0; i<N-1; i++)
    {
        printf("%d ", a[i]);
    }
    printf("%d", a[i]);
    system("pause");
}
  • 正常C语言完成
#include <stdio.h>  
int a[100];  
void reverse(int *a, int m, int n){  
    for (int i = m; i <= (m + n) / 2; i++){  
        int tmp = a[i];  
        a[i] = a[m + n - i];  
        a[m + n - i] = tmp;  
    }  
}  

int main(){  
    int n, m;  
    scanf("%d%d", &n, &m);  
    m %= n;  
    for (int i = 0; i < n; i++)  
        scanf("%d", &a[i]);  
    reverse(a, 0, n-m-1);  
    reverse(a, n-m, n-1);  
    reverse(a, 0, n-1);  
    for (int i = 0; i < n; i++)  
        printf("%d%s", a[i], (i-n+1?" ":"\n"));  
    return 0;  
}  
基于分位数回归的静态CoVaR计算 案例与代码 原文链接:https://bbs.pinggu.org/thread-7925441-1-1.html 一、静态CoVaR模型介绍 二、资料简介 实现对相关期刊论文进行论文重现,解决实证分析中的技术操作问题。里面包含了每一步详细的步骤,可以方便的利用这个手册解决大部分利用分位数回归计算静态CoVaR的论文的模型实现问题。即从数据下载到模型实现一整条操作步骤。 关键词:【分位数回归】【Co... 阅读详情

相关推荐

从零构建:Esp32+Esp-IDF驱动ST7789屏幕并集成LVGL图形库

本文详细介绍了如何从零开始使用Esp32和Esp-IDF驱动ST7789屏幕并集成LVGL图形库。内容涵盖环境准备、SPI驱动配置、屏幕初始化、LVGL图形库集成及常见问题排查,帮助开发者快速实现高效稳定的显示解决方案。

weixin_42657024的博客 524

PAT乙级真题及训练集-1008

1008. 数组元素循环右移问题 (20)一个数组A中存有N(N&gt;0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M&gt;=0)个位置,即将A中的数据由(A0A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,...

chianing的博客 483

告别卡顿!用AVPro Video在Unity 2022.3里流畅播放4K视频的保姆级配置流程

本文详细介绍了如何在Unity 2022.3中使用AVPro Video插件实现4K视频的流畅播放。从环境配置、插件选型到核心性能优化技巧,包括解码器设置、内存管理策略和多平台适配方案,帮助开发者彻底解决卡顿问题,提升视频播放体验。

weixin_32349561的博客 318

PAT 1008 数组元素循环右移问题

题目: 一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入格式:每个输入包含一个测试用例,第1行输入N ( 1<=N...

xiaolan7777777的博客 107

机器学习预测材料性能:从特征工程到SHAP可解释性分析

机器学习在材料科学中的应用,核心在于将复杂的材料性能预测问题转化为数据驱动的建模任务。其基本原理是通过算法从历史数据中学习特征与目标属性之间的映射关系。这项技术的价值在于能够大幅加速新材料的发现与设计周期,降低传统“试错法”的高昂成本。在工程实践中,它广泛应用于预测如形成能、带隙、弹性模量以及居里温度等关键材料性能。具体到磁性材料领域,居里温度的准确预测对于永磁体和自旋电子器件设计至关重要。本项目深入探讨了如何利用特征工程从材料成分与结构中构建有效描述符,并借助SHAP这一可解释性工具,揭示模型决策背后的物

weixin_27155667的博客 650

VisionMaster4.2.0与C#控件开发实战:从入门到精通的完整指南

本文详细介绍了VisionMaster4.2.0与C#控件开发的实战指南,从基础环境搭建到核心控件使用,再到高级功能实现。通过VmFrontendControl、VmGlobalToolControl等核心控件的深入解析,帮助开发者快速掌握机器视觉应用开发技巧,提升开发效率。特别适合需要集成VisionMaster4.2.0 SDK进行视觉系统开发的C#程序员。

weixin_42665725的博客 383

PAT乙级-1008(数组元素循环右移问题)

rotate 函数接受三个参数:旋转的起始位置、旋转的中间位置、旋转的结束位置。在这里,我们将起始位置设置为数组的末尾,中间位置为末尾减去 M(即右移的位数),结束位置为数组的末尾。接下来,对右移位数 M 进行处理,通过取模运算符 %,确保 M 的值在数组长度 N 内,避免不必要的循环移动。对数组长度取余:在计算右移位数时,使用了取余操作符 %,这是一个好的做法,可以确保 M 的值小于数组长度 N。最后,通过迭代器遍历输出右移后的数组元素,注意在输出时处理好元素之间的空格,确保输出格式正确。

2301_81064553的博客 513

背靠背VSC直流母线电压控制与同步发电机并网发散问题:原理、分析与解决方案

背靠背VSC直流母线电压控制与同步发电机并网发散问题分析 摘要: 本文研究了背靠背VSC系统在整流侧由理想三相电源切换为同步发电机时出现的直流母线电压振荡和发散问题。通过理论分析发现,锁相环同步失稳、等效阻抗失配和直流母线电容参数失配是导致系统失稳的关键因素。当整流侧接入同步发电机后,系统形成正反馈振荡回路,同时等效电感增大导致电流环响应速度降低,直流侧电容容量不足无法吸收发电机功率波动。文章提出了从跟网型控制到构网型VSG控制的完整升级方案,包含详细的MATLAB/Simulink建模和控制算法实现,并通

huanghm88的专栏 122

PAT乙级------1006~1010附代码及思路

PAT乙级 1006~1010,换个格式输出整数、素数对猜想、数组元素循环右移问题、说反话、一元多项式求导

weixin_44689331的博客 270

【AI工具】Browser use搭建及使用的保姆级教程:让AI帮你自动操作浏览器

【AI工具】Browser use搭建及使用的保姆级教程:让AI帮你自动操作浏览器

funfan的博客 2535

WPS访问权限不足怎么解决??具体怎么操作?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 4171

PAT 乙级 1008 数组元素循环右移问题

PAT 乙级 1008 数组元素循环右移问题题目说明输入格式输出格式样例代码 题目说明 一个数组A中存在N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(>=0)个位置,即将A中的数据由(A0A1…AN-1)变换为(AN-M…AN-1A0A1…AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入格...

weijlxm的博客 180

FAA和EASA在机载电子硬件适航中的发展历史与差异

FAA和EASA在机载电子硬件的适航审查中虽然存在一些差异,但通过近年来的合作,这些差异正在逐步缩小。两者通过。

qq_41854911的博客 745

PAT 乙级题目讲解:1008《数组元素循环右移问题》

本文以 PAT 乙级 1008 题《数组元素循环右移问题》为例,详细讲解了"三次翻转法"实现数组就地循环右移的核心思路。文章提供了手写 `reverse` 函数与使用 C++ STL `reverse` 的两种实现方案,分析了常见错误,并总结了时间复杂度 O(n)、空间复杂度 O(1) 的高效解法的思维拓展方向。

qq_35624947的博客 977

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

PAT乙级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 ​N−M−1 ​​ )(最后M个数循环移至最前面的M个位置)。如果需要考虑...

ID:1024 445

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

PAT考试乙级1008之数组元素循环右移问题

PAT考试乙级1008之数组元素循环右移问题 题目: 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A​1⋯A​N−1​​ )变换为(A​N−M⋯A​N−1 A​0A​1​​ ⋯A​N−M−1​​)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入格式: 每个...

a029019的博客 229

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PAT Basic 1008 乙级 数组元素循环右移问题 C语言题解

PAT1008 乙级 数组元素循环右移问题 C语言题解 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M*个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入格式: 每个输入包含一个测试用例,第1行...

Allen_0x4bb的博客 278

PAT 乙级 1008 数组循环右移

PAT 乙级 1008 数组循环右移 处理循环右移的套路 数组长度为n,要把数组循环右移m位,只用把数组倒置,然后把数组前m位倒置,在把数组后n-m位倒置即可。 注意m可能大于n,循环右移m位相当于循环右移m%n位,循环右移n位等于没移动,处理之前先让 m %= n // PAT 乙级 1008 数组循环右移.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <algorithm> #inclu

weixin_43480561的博客 298

PAT刷题之乙级1008 数组元素循环右移问题

目录PAT刷题之乙级1008(cpp)题目描述输入格式输出格式输入样例输出样例问题分析代码实现运行实现 PAT刷题之乙级1008(cpp) 题目描述        一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A​0A1⋯AN−1​)变换为(A​N−...

ThunderF的博客 247

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

PAT乙级练习总结 PAT乙级 1008 数组元素循环右移问题 (20 分) 希望我的思路可以帮助你。 文章目录PAT乙级练习总结二、代码总结 1008 数组元素循环右移问题 (20 分) 输入格式:每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。 输出格式:在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。 输入样例: 6 2 1 2 3 4 5 6 输出样例: 5 6 1 2 3 4 二、代码

jiaoooooo的博客 118

PAT 乙级 1008数组元素循环右移问题 C语言

1008. 数组元素循环右移问题 (20)题目: 一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入格式:每个输入包含一个测试用例

米狗GO的博客 691

程序员测试题:PAT乙级 1008 数组元素循环右移问题(C语言版本)

程序员测试题:1008 数组元素循环右移问题(C语言版本) PAT题目链接 思路: 定义二维字符数组,然后挨个单词存储,然后倒序输出数组内容。 #include <stdio.h> #include <string.h> int main() { char arr[100][100] = {{'\0','\0'}}; int ii=0;//记录进入几个单词 char ch=0; while(scanf("%s",arr[ii])!=EOF) { if((ch=ge

智能网联汽车V2X开发网的博客 291

PAT乙级_1008 数组元素循环右移问题_Python_AC解法_无疑难点

本文介绍了PAT乙级1008题"数组元素循环右移问题"的Python解法。题目要求在不使用额外数组的情况下,将数组循环右移M位。关键点在于通过三次反转实现原地移位:先整体反转,再分别反转前M项和剩余部分。使用取模运算处理M大于数组长度的情况。代码简洁高效,时间复杂度为O(n),满足题目要求。输入输出示例展示了解法的正确性。该解法避免了频繁的数据移动,是处理数组循环移位的经典方法。

CongQianS1的博客 280
上一篇: PAT 乙级1007. 素数对猜想
下一篇: PAT乙级1018 石头剪刀布
鱼忘机
博客等级 码龄10年 50粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值