zoukankan      html  css  js  c++  java
  • 数组循环移动(娱乐代码)

    package com.demo.sw.test;
    
    /**
     * 
     * 循环移动一个数组中的数字:
     * 如数数组:1,2,3,4,5,6,7
     * 向前移动 3 位得到的结果是:
     * 4,5,6,7,1,2,3
     * @author Mr.J
     *
     */
    public class ArrayMove {
    	
    	public static void main(String[] args) {
    		
    		int[] arr = new int[12];
    		// 初始化要移动的数组
    		for (int i = 0; i < arr.length; i++) {
    			arr[i] = i + 1;
    		}
    
    		int num = 17; // 要移动的位数
    		
    		moveNums(arr, num); // 调用要移动的方法
    		// 显示移动的结果
    		System.out.println("调用有返回值的方法:");
    		for (int i = 0; i < arr.length; i++) {
    			System.out.print(arr[i] + " ");
    		}
    
    		System.out.println();
    		
    	}
    
    	/*
    	 * 方法 需要传进要移动的数组和移动的位移量
    	 */
    	public static int[] moveNums(int[] arr, int num) {
    		
    		if(num > arr.length){ // 如果移动的位移量大于数组的长度,则会多转几圈
    			num = num % arr.length;
    		}
    		// 声明一个数组来存储数组前边被移动的数字
    		int[] copy = new int[num];
    		
    		// 把原数组中要移动的数字存储起来
    		for (int i = 0; i < copy.length; i++) {
    			copy[i] = arr[i];
    		}
    
    		// 移动数组
    		for (int i = 0; i < arr.length - num; i++) {
    			arr[i] = arr[i + num];
    		}
    
    		// 移动完后把原来的数字追加到数组后边
    		for (int i = 0; i < copy.length; i++) {
    			arr[arr.length - num + i] = copy[i];
    		}
    
    		return arr;
    
    	}
    
    }
  • 相关阅读:
    WPF Caliburn 学习笔记(五)HelloCaliburn
    MSDN 教程短片 WPF 20(绑定3ObjectDataProvider)
    MSDN 教程短片 WPF 23(3D动画)
    比赛总结一
    HDU3686 Traffic Real Time Query System
    HDU3954 Level up
    EOJ382 Match Maker
    UESTC1565 Smart Typist
    HDU3578 Greedy Tino
    ZOJ1975 The Sierpinski Fractal
  • 原文地址:https://www.cnblogs.com/icenter/p/1988836.html
Copyright © 2011-2022 走看看