• 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<=100)、M(M>=0);第2行输入N个整数,之间用空格分隔。

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

    输入样例:

    6 2
    1 2 3 4 5 6
    

    输出样例:

    5 6 1 2 3 4


     1 package com.hone.basical;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 原题目:https://www.patest.cn/contests/pat-b-practise/1008
     7  * @author Xia
     8  */
     9 public class basicalLevel1008ArrayMoveRight {
    10     public static void main(String[] args) {
    11         Scanner input = new Scanner(System.in);
    12         int n = input.nextInt();
    13         int m = Integer.parseInt(input.nextLine());
    14         int temp ;
    15         int[] a = new int[n];
    16         for (int i = 0; i < n; i++) {
    17             a[i] = input.nextInt();
    18         }
    19         //这里面稍稍复杂一些,依次将元素往后面移动
    20         for (int i = 1; i <= m; i++) {
    21             temp = a[n-1];
    22             for (int j = n-1; j > 0; j--) {
    23                 a[j] =a[j-1];
    24             }
    25             a[0] = temp;
    26         }
    27         for (int i = 0; i < a.length-1; i++) {
    28             System.out.print(a[i]+" ");
    29         }
    30         System.out.println(a[a.length-1]);
    31     }
    32 }
  • 相关阅读:
    ASP.NET 表单验证 Part.2(实现表单验证)
    长工的买房故事
    软件界面交互和易用性改进总结[zz]
    访问hotmail邮箱的途径
    Google内部收集员工创意的方法[转载]
    Web2.0地图展望
    C++开源跨平台类库集
    庆祝lucky荣登早教网首页宝宝
    在那些打磨汉芯的日子里[转贴]
    在中国搞技术只能混碗饭吃,没有太大希望
  • 原文地址:https://www.cnblogs.com/xiaxj/p/7977327.html
Copyright © 2020-2023  润新知