pat_1008
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个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
输入格式:每个输入包含一个测试用例,第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 ==========================================idea: 通过 N M 的计算, 在接收数据的时候 通过 实现计算 在 N 个数据经过 M次数的 循环右移 之后,
在数组中的位序是 怎样的, 可以将 原N 长度的数组分割为 [0, M-1] and [M , N-1]
在 经过 循环右移 之后 实质上 就是将这两个分割 位置进行 对调: [M , N-1] [0, M] 所以接收的时候 先将 0..N-M 在原始数组中的 数据 存放到 M, N-1 位序 对应的数组中
然后, 在接收 N-M+1 .. N 在原始数组中的 数据 存放到 0..M-1 为序对应的数组中。 最后,将存放好数据的数组 从 0.. N-1 进行输出 就会得到 对原始 输入的数组 进行循环 右移 M 次 的 新数组了 ===========================================src:
#include <stdio.h> int main ( )
{
int N, M , i ; int arr[] ; scanf ( "%d" , &N ) ;
scanf ( "%d" , &M ) ; for ( i =M ; i <=N- ; i++ )
{
scanf ( "%d" , &arr[i] ) ;
} for ( i = ; i <= M- ; i++ )
{
scanf ( "%d" , &arr[i] ) ;
}
for ( i = ; i <= N - ; i++ )
{
printf("%d", arr[i]) ;
if ( i != N- )
printf(" ") ;
} return ;
}
17/20 错了一个地方
pat_1008的更多相关文章
- PAT_1008 数组元素循环右移问题
题目描述: 一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0A1……AN-1)变换为(AN-M …… AN ...
随机推荐
- 将eclipse新建项目的默认编码GBK改为UTF-8
在eclipse下: 新建项目默认编码设置:Window->Preferences->General->Workspace->Text file encoding 将其改为UF ...
- 【Android 开源】:最火的Android开源项目 第01期
GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要.利用这些项目,有时能够让你 ...
- 文本编辑器 CKEditor 用法
最新文本编辑器,FCK升级版:CKEditor.NET CKEditor.NET.dll 版本:3.6.4.0 官方网址:http://ckeditor.com/ 效果图: 配置web.c ...
- 解决Ubuntu下sublime3无法输入中文
参考site: https://github.com/YoungZHU/sublime-imfix 1. 下载sublime-imfix.c 假设下载到了 home(-)目录下 2. 安装c\C++ ...
- 《使用wxWidgets进行跨平台程序开发》chap09——布局一个对话框
///////////////////////////////////////////////////////////////////////////// // Name: personalrecor ...
- bash的多行注释
:<<EOF 注释的代码... EOF 单行是#
- hdoj 1896 Stones【优先队列】
Stones Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Subm ...
- .Net设计模式_适配器模式
引言: 有一次我看到一个朋友拿出一个三角型的东西,好奇的上去一看你,我勒个去,传说中的万能插口转接器(插口适配器). 一面是插入口,集合了我认识的所有插口的形状,也有国内没看见过的:另一个是跟插座接触 ...
- CSS围住浮动元素的三种方法
浮动元素脱离了文档流,其父元素看不到它了,因而不会包围它.浮动会“扩散”到下一个清除浮动的元素处.这会引起不想要的页面布局效果. 清除浮动的方法有三种: 1.父元素overflow:hidden 2. ...
- sqlserver优化查询
sql语句的优化分析 开门见山,问题所在 sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况. 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语 ...