PAT B1008. 数组元素循环右移问题

news2025/1/11 14:46:04

 题目描述
一个数组A中存有N(N>O)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(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个位置)。如果需要考虑程序移动数据的次数尽量少,则应如何设计移动的方法?
输入格式
每个输入包含一个测试用例,第一行输入N(1≤N≤100)、M (M≥0);第二行输入N个整数,之间用空格分隔。
输出格式
在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。
输入样例

6 2
1 2 3 4 5 6

输出样例

5 6 1 2 3 4

思路:

         题目中虽然给出了很多限制,例如不允许使用另外的数组、又要考虑移动数据的次数最少,但实际上却只测试循环右移之后得到的结果而不管过程。对于这种题目,考生其实可以不用管题目中那些限制,直接输出答案即可。
        首先需要注意题目并没有给定M的最大值,因此不能直接认为M<N,而需要在读入N和M后令M=M%N,这样就可以保证M<N,使后面的操作更简便。这样做的依据是:对一个长度为N的序列,右移N位之后的序列和当前序列是相同的。
        在得到新的M后,可以直接输出序列从N-M号元素到N-1号元素,再输出О号元素到N-M-1号元素即可。
注意点
①处理最后一个数字之后不输出空格可以使用count变量记录已经输出数的个数,只要count没有达到N,就输出空格。

 代码实现:

#include<cstdio>

int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	
	int count = 0;  //记录输出的数量 
	int a[110];
	for(int i = 0;i < n;i++)
	{
		scanf("%d",&a[i]);
	}
	
	m = m % n;  //修正 m 
	
	for(int i = n - m;i < n; i++)  //输出n-m号到n-1号 
	{ 
		printf("%d",a[i]);
		count++;  //已输出数的个数+1 
		if(count < n) printf(" ");
	}
	
	for(int i = 0;i< n - m;i++)  //输出0到n-m-1号 
	{
		printf("%d",a[i]);
		count++;
		if(count < n) printf(" ");
	}
	
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1835226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FastAdmin后台开发框架 lang 任意文件读取漏洞复现

0x01 产品简介 FastAdmin是一款基于PHPBootstrap的开源后台框架&#xff0c;专为开发者精心打造。它基于ThinkPHP和Bootstrap两大主流技术构建&#xff0c;拥有完善的权限管理系统和一键生成CRUD等强大功能。FastAdmin致力于提高开发效率&#xff0c;降低开发成本&#xff0c;…

第二证券炒股知识:新手炒股要注意什么风险?

股票商场作为现代金融商场的重要组成部分&#xff0c;招引了众多出资者的目光。但是关于新手来说炒股赚钱并不是那么简单的&#xff0c;其间蕴含着诸多危险。关于新手炒股要注意什么危险&#xff0c;中航资本下面就为大家具体介绍一下。 新手炒股要注意的危险&#xff1a; 1、…

云计算【第一阶段(16)】安装及管理程序

一、linux 应用程序基础 当我们主机安装linux操作系统 时候&#xff0c;也会同时安装一些软件或网络服务等等&#xff0c;但是随着系统一起安装的软件包毕竟他是少数的&#xff0c; 能够实现的功能也是有限的&#xff0c;那么我们相拥为主机提供更多更丰富的功能的时候&#x…

OpenAI 600万天价年薪震惊网友,全美顶尖AI公司薪酬大曝光!

最近&#xff0c;一张美国科技大厂的薪酬表曝出&#xff0c;OpenAI以500万起薪领衔。初创公司给出的薪酬&#xff0c;竟然超过了所有大型科技公司。不过初级码农&#xff0c;时薪却低至85元。 顶级公司的AI工程师能挣多少钱&#xff1f; 最近&#xff0c;这张美国科技大公司的…

“非遗+全身动作捕捉设备”如何打造交互式叙事新消费场景?

在数字化时代&#xff0c;非遗传承渠道逐渐数字化、科技化&#xff0c;利用“虚拟人全身动作捕捉设备”技术提升了非遗文化的社会能见度&#xff0c;让非遗文化重新吸引年轻人的目光。 “虚拟人全身动作捕捉设备”&#xff0c;可以让虚拟人化身虚拟主持人、虚拟主播、虚拟嘉宾…

图-多叉树的直径(hard)

目录 一、问题描述 二、解题思路 1.存储结构 2.算法描述 三、代码实现 四、刷题链接 五、参考 一、问题描述 二、解题思路 1.存储结构 使用邻接表结构来存储无向图&#xff0c;边结点存储结构为[终点&#xff0c;边长(也就是权重)] 2.算法描述 从某一个结点&#xff08;…

STM32开发过程中碰到的问题总结 - 3

文章目录 前言1. keil5升级到最新版本使用armV6编译工具链编译不通过2. 最新的keil用Jlink调试失败3. 移动了目录后跑不起来了4. 串口兼容了GNU 和arm只会&#xff0c;编译出来的成果物&#xff0c;串口输出不正常5.STM32下哪些IO口可以作为中断触发去使用6. 触发GPIO10的外部中…

Python机器学习完整流程:从数据清洗到推理落地

目录 一、引言 二、数据清洗 数据加载与初步探索 缺失值处理 异常值处理 特征编码与转换 数据集划分 三、模型训练 四、模型文件生成 五、模型部署与推理落地 六、总结 一、引言 在当今数据驱动的时代&#xff0c;机器学习已成为解决复杂问题的有力工具。而…

Django期末重点

思维导图 一、Djanog框架基础 MVT设计模式&#xff08;model模型【操作数据库】、template模板【页面展示】、view视图【处理请求和调用模型模板】&#xff09; 二、Django项目框架搭建 创建项目骨架 django-admin startproject 项目名启动服务 &#xff08;1&#xff09;p…

Eigne库安装及使用教程

文章目录 1.Eigne库介绍2.Eigne库安装3.Eigne库使用4.some examples5.参考文献 1.Eigne库介绍 Eigen是可以用来进行线性代数、矩阵、向量操作等运算的C库&#xff0c;它里面包含了很多算法。它的License是MPL2。它支持多平台。 Eigen采用源码的方式提供给用户使用&#xff0c;在…

赛氪网荣膺“创新型中小企业”称号,科技创新再显卓越实力

近日&#xff0c;北京市经济和信息化局揭晓了2024年度3月份北京市创新型中小企业的光荣名单&#xff0c;其中北京环球赛乐科技有限公司&#xff08;简称赛氪网&#xff09;脱颖而出&#xff0c;再度展现其在创新领域的卓越实力&#xff01; 作为早已跻身“高企之光”行列的佼佼…

【x264】滤波模块的简单分析

【x264】滤波模块的简单分析 1. 滤波模块概述1.1 自适应边界1.2 自适应样点级滤波器1.3 滤波过程 2. 函数入口&#xff08;fdec_filter_row&#xff09;2.1 去块滤波&#xff08;x264_frame_deblock_row&#xff09;2.1.1 强滤波函数&#xff08;deblock_edge_intra&#xff09…

Ubuntu20.04-ROS:Noetic安装

根据Ubuntu系统来选择对应的ros版本&#xff0c;在Ubuntu20.04上安装ROS-Noetic为例说明下如何安装ros 一 设置ROS源 / 终端输入 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.lis…

语言大模型:开启自然语言处理的新篇章

随着人工智能技术的飞速发展&#xff0c;自然语言处理&#xff08;NLP&#xff09;领域取得了显著的成果。其中&#xff0c;语言大模型&#xff08;Language Models&#xff09;作为近年来崛起的一种新型神经网络模型&#xff0c;已经在文本生成、机器翻译、情感分析等多个NLP任…

计算机专业毕设-校园二手交易平台

1 项目介绍 基于SpringBoot的校园二手交易平台&#xff1a;前端Freemarker&#xff0c;后端 SpringBoot、Jpa&#xff0c;系统用户分为两类&#xff0c;管理员、学生&#xff0c;具体功能如下&#xff1a; 管理员&#xff1a; 基本功能&#xff1a;登录、修改个人信息、修改…

Web应用安全测试-综合利用(三)

Web应用安全测试-综合利用&#xff08;三&#xff09; XML注入 漏洞描述 可扩展标记语言 (Extensible Markup Language, XML) &#xff0c;用于标记电子文件使其具有结构性的标记语言&#xff0c;可以用来标记数据、定义数据类型&#xff0c;是一种允许用户对自己的标记语言进…

内行人说真话,家用空气净化器对灰尘、毛絮的作用到底如何?

在日常生活中&#xff0c;打扫房间常常令人头疼&#xff0c;尤其是地面和家具上那些似乎永远清理不完的浮灰和毛絮。有时候&#xff0c;即使我们用吸尘器、扫地机器人等不断清扫&#xff0c;灰尘和毛絮仍旧存在。特别对于养宠物的家庭来说&#xff0c;清洁工作更是一项挑战&…

gitlab 身份验证手机号验证没86

处理方案 在浏览器中摁 【F12】打开控制台&#xff0c;选择网络模块&#xff0c;找到手机号列表的请求&#xff0c;请求是 https://gitlab.com/-/countries&#xff0c;右击数据区域点击【替换内容】如下&#xff1a; ![在这里插入图片描述](https://img-blog.csdnimg.cn/di…

三分钟了解链动3+1模式

在电商领域的营销策略中&#xff0c;链动31模式以其独特的魅力和优势&#xff0c;吸引了众多商家的目光。下面&#xff0c;我们将对这一模式进行深度剖析&#xff0c;并探讨其相较于链动21模式的优势所在。 一、身份设置与奖励机制 链动31模式在身份设置上分为三种&#xff1…

【React】Table表头纵向展示

默认表格展示&#xff1a; 展示目标&#xff1a; 环境 antd: ^5.14.1react: ^18 拟定数据 - columns const columns [{title: "品牌",dataIndex: "brand",key: "brand",width: 100,},{title: "Star",dataIndex: "star&quo…