每日作业
数字环
有一个长度为n的数字环, 将每个数字往后移动m位, 使其成为一个新的数字环
输入:
第一行: n 表示有n个数字
第二行: n个整数An, 表示数字环的每个元素
第三行: m 表示每个元素需要往后移动m位
(1<n<100, 0<An<1000, 0<=m<=100)
输出: 移动后的新数字环
样例输入:
10
1 2 3 4 5 6 7 8 9 10
2
样例输出:
9 10 1 2 3 4 5 6 7 8
1 package com.work; 2 3 import java.util.Scanner; 4 5 public class Assignment_14 { 6 public static void main(String[] args) { 7 Scanner reading = new Scanner(System.in); 8 int n,m; 9 System.out.print("输入数字环的长度:"); 10 n = reading.nextInt(); 11 int[] A = new int[n]; 12 System.out.print("输入"+n+"个元素:"); 13 for (int i = 0; i < n; i++) { 14 A[i] = reading.nextInt(); 15 } 16 System.out.println("输入每个元素需要往后移动的位次:"); 17 m = reading.nextInt(); 18 while (true) { //对输入进行判断 19 if (m > n - 1 || m < 0) { 20 System.out.print("移动的位数不能大于数组的长度,请不能为负数!请重新输入:"); 21 m = reading.nextInt(); 22 } else { 23 break; 24 } 25 } 26 int[] Array = new int[n];// 定义一个新的数组,与原来的数组长度相同 27 for (int i = 0; i < n; i++) { 28 Array[i] = A[i]; 29 } 30 for (int i = 0; i < n; i++) { 31 int tmp = (i + m) % n;// 计算新的位置,即元素移动m的位置 32 A[tmp] = Array[i]; 33 } 34 System.out.print("移动 " + m + " 个位置后,数组变为:"); 35 for (int i = 0; i < n; i++) { 36 System.out.print(A[i] + " "); 37 } 38 } 39 }