JAVA 基础编程练习题36 程序 36 移动位置

Posted denggelin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 基础编程练习题36 程序 36 移动位置相关的知识,希望对你有一定的参考价值。

 

36 【程序 36 移动位置】

题目:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数

 

package cskaoyan;

public class cskaoyan36 
	@org.junit.Test
	public void shift() 
		java.util.Scanner in = new java.util.Scanner(System.in);
		int n = 0;
		int offset = 0;
		// 输入数组大小和数组内容
		System.out.println("Total numbers?");
		n = in.nextInt();
		System.out.println("Input " + n + " numbers.");

		if (n <= 0) 
			in.close();
			return;
		

		int[] arr = new int[n];
		for (int i = 0; i < n; i++) 
			arr[i] = in.nextInt();
		
		// 输入滚动偏移量
		System.out.println("Set your offset.");
		offset = in.nextInt();
		System.out.println("Offset is " + offset + ".");
		// 打印滚动前数组
		print_arr(arr);
		// 滚动数组并打印
		arr = move(arr, offset);
		print_arr(arr);
		in.close();
	

	private void print_arr(int[] array) 
		for (int i = 0; i < array.length; i++) 
			System.out.print(array[i] + " ");
		
		System.out.println();
	

	private int[] move(int[] array, int offset) 
		if (offset <= 0) 
			return array;
		

		offset %= array.length;

		int[] arrayNew = new int[array.length];

		for (int i = 0; i < array.length - offset; i++) 
			arrayNew[offset + i] = array[i];
		

		for (int i = 0; i < offset; i++) 
			arrayNew[i] = array[array.length - offset + i];
		

		return arrayNew;
	

 

以上是关于JAVA 基础编程练习题36 程序 36 移动位置的主要内容,如果未能解决你的问题,请参考以下文章

Java基础36:函数式编程

HihoCoder1640 : 命名的烦恼([Offer收割]编程练习赛36)()

HihoCoder1637 : 逃离单身节([Offer收割]编程练习赛36)(模拟)

第36天并发编程之进程篇

JAVA 基础编程练习题33 程序 33 杨辉三角

JAVA 基础编程练习题27 程序 27 求素数