2019-01-23-PAT乙级-1008-数组元素循环右移问题

2019-01-23-PAT乙级-1008-数组元素循环右移问题

2019-01-23-PAT乙级-1008-数组元素循环右移问题

原文链接:1008 数组元素循环右移问题

github代码地址:HibisciDai/OJ-PAT-ACM

2019-01-23-PAT乙级-1008-数组元素循环右移问题

编程描述

一个数组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个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?

辅助描述

1
2
3
4
5
作者: DS课程组
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB

输入格式

每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。

输出格式

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

输入样例

1
2
6 2
1 2 3 4 5 6

输出样例

1
5 6 1 2 3 4

算法实现

JAVA(openjdk)

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

import java.util.Scanner;

public class Main {
public static Scanner sc = new Scanner(System.in);

public static void main(String[] args) {
int N = sc.nextInt();
int M = sc.nextInt();
int[] inputInt = new int[N];
int[] outputInt = new int[N];

for (int i = 0; i < N; i++) {
inputInt[i] = sc.nextInt();
}

sc.close();

for (int i = N - 1; i >= 0; i--) {
outputInt[(i + M) % N] = inputInt[i];
}

System.out.print(outputInt[0]);
for (int i = 1; i < N; i++) {
System.out.print(" " + outputInt[i]);
}
}
}

运行结果

1
2
3
4
5
6
7
8
状态	分数	题目	编译器	耗时	用户
答案正确 20 1008 Java (openjdk) 148 ms HibisciDai
测试点 结果 耗时 内存
0 答案正确 148 ms 11416 KB
1 答案正确 134 ms 11456 KB
2 答案正确 126 ms 11384 KB
3 答案正确 123 ms 11416 KB
4 答案正确 140 ms 11748 KB

C

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>

int main()
{
int i;
int n;
int m;
char ch = ' ';
int arr[100];

scanf("%d", &n);
scanf("%d", &m);
m = m % n;//确保 m < n

for(int i=1; i<=n; i++)
{
scanf("%d",&arr[i]);
}

for (i=n-m+1; i<=n; i++)
{
printf("%d ", arr[i]);
}


for(int i=1; i<=n-m; i++)
{
if (i == (n - m))
{
ch = '\n';
}

printf("%d%c", arr[i], ch);
}

return 0;
}

运行结果

1
2
3
4
5
6
7
8
状态	分数	题目	编译器	耗时	用户
答案正确 20 1008 C (gcc) 2 ms HibisciDai
测试点 结果 耗时 内存
0 答案正确 2 ms 256 KB
1 答案正确 1 ms 384 KB
2 答案正确 2 ms 256 KB
3 答案正确 1 ms 256 KB
4 答案正确 2 ms 384 KB
文章作者: HibisciDai
文章链接: http://hibiscidai.com/2019/01/23/2019-01-23-PAT乙级-1008-数组元素循环右移问题/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HibisciDai