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;
	}
}

原文地址:https://www.cnblogs.com/denggelin/p/11444442.html

时间: 2024-10-11 21:50:37

JAVA 基础编程练习题36 【程序 36 移动位置】的相关文章

50道JAVA基础编程练习题

50道JAVA基础编程练习题[程序1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....public class Prog1{public static void main(String[] args){ int n = 10; System.out.println("第"+n+"个月兔子总数为"+f

JAVA基础编程练习题

50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... public class Prog1{ public static void main(String[] args){ int n = 10; System.out.println("第"+n+"个月兔子总数为&qu

6、50道JAVA基础编程练习题跟答案

1 50道JAVA基础编程练习题 2 [程序1] 3 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 4 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 5 public class Prog1{ 6 public static void main(String[] args){ 7 int n = 10; 8 System.out.println("第"+n+

JAVA 基础编程练习题15 【程序 15 排序】

15 [程序 15 排序] 题目:输入三个整数 x,y,z,请把这三个数由小到大输出. 程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 x>y 则将 x 与 y 的值进行交换, 然后再用 x 与 z 进行比较,如果 x>z 则将 x 与 z 的值进行交换,这样能使 x 最小. package cskaoyan; public class cskaoyan15 { private static int x; private static int y; private

JAVA 基础编程练习题29 【程序 29 求矩阵对角线之和】

29 [程序 29 求矩阵对角线之和] 题目:求一个 3*3 矩阵对角线元素之和 程序分析:利用双重 for 循环控制输入二维数组,再将 a[i][i]累加后输出. package cskaoyan; public class cskaoyan29 { @org.junit.Test public void diagonal() { java.util.Scanner in = new java.util.Scanner(System.in); int[][] arr = new int[3][

JAVA 基础编程练习题44 【程序 44 偶数的素数和】

44 [程序 44 偶数的素数和] 题目:一个偶数总能表示为两个素数之和. package cskaoyan; public class cskaoyan44 { @org.junit.Test public void sum() { java.util.Scanner in = new java.util.Scanner(System.in); int number = 0; do { System.out.println("请输入一个偶数:"); number = in.nextI

JAVA 基础编程练习题48 【程序 48 加密】

48 [程序 48 加密] 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密 规则如下:每位数字都加上 5,然后用和除以 10 的余数代替该数字,再将第一位和第四位交 换,第二位和第三位交换. package cskaoyan; public class cskaoyan48 { public static void main(String[] args) { // TODO Auto-generated method stub java.util.Scanner

JAVA 基础编程练习题3 【程序 3 水仙花数】

3 [程序 3 水仙花数] 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例 如:153 是一个"水仙花数",因为 153=1 的三次方+5 的三次方+3 的三次方. 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位. package cskaoyan; import org.junit.Test; public class cskaoyan3 { @Test p

JAVA 基础编程练习题13 【程序 13 根据条件求数字】

13 [程序 13 根据条件求数字] 题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少? 程序分析:在 10 万以内判断,先将该数加上 100 后再开方,再将该数加上 268 后再开方,如果开方后的结 果满足如下条件,即是结果. package cskaoyan; public class cskaoyan13 { @org.junit.Test public void number() { int min = 1; int max = 10