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 ...
随机推荐
- 转自 x_x的百度空间
空华人生 by 淡漠的心情 昨天,又昨天. 今天,又今天. 明天,又明天. 日历渐渐稀薄,忽然发现,那是时间的痕迹. 似乎,总是在麻木的等待. 何时,才能历尽. 再算算,我又还有多少天 ...
- Binomial Showdown
Binomial Showdown TimeLimit: 1 Second MemoryLimit: 32 Megabyte Totalsubmit: 2323 Accepted: 572 D ...
- makefile 进阶
一步一步写一个简单通用的makefile(一) 一步一步写一个简单通用的makefile(二) 一步一步写一个简单通用的makefile(三) 一步一步写一个简单通用的makefile(四)
- Stand-up meeting
A stand-up meeting (or simply "stand-up") is a daily team-meeting held to provide a status ...
- HW4.21
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- linux 下查看网速的方法 (不需要安装任何软件)
sudo watch -n 1 "/sbin/ifconfig eth0 | grep -E \"字节|数据包\"" 若是英文版linux: sudo watc ...
- STM32 IAP 在线更新程序 为什么有时行 有时又不行 感觉不可靠 问题解决
搞了一天才发现 在MDK设置选项中有个"linker"选项卡 , 需要在Project->Options->Linker中将Use Memory Layout from ...
- jquery ajax 使用layer的超时提示
<!DOCTYPE html> <html> <head> <title>我是标题</title> <meta name=" ...
- Servlet小知识点
1. Sevlet是一个java类,供以其他程序调用,不能独立运行,需要Servlet引擎(Servlet容器)来管理和调度. 2. 服务器启动后,一般只会创建一个Servlet实例对象,init方法 ...
- spring boot 实践
二.实践 一些说明: 项目IDE采用Intellij(主要原因在于Intellij颜值完爆Eclipse,谁叫这是一个看脸的时代) 工程依赖管理采用个人比较熟悉的Maven(事实上SpringBoot ...