题目描述
【问题描述】
给一维数组输入M个整数,假设M=6,数组元素分别为 7 4 8 9 1 5 ,
要求建立一个如下数组(矩阵):
7 4 8 9 1 5
4 8 9 1 5 7
8 9 1 5 7 4
9 1 5 7 4 8
1 5 7 4 8 9
5 7 4 8 9 1
输入
【输入样例】
6
7 4 8 9 1 5
输出
【输出样例】
7 4 8 9 1 5
4 8 9 1 5 7
8 9 1 5 7 4
9 1 5 7 4 8
1 5 7 4 8 9
5 7 4 8 9 1
最后一个数据后面没有空格
样例输入
6
7 4 8 9 1 5
样例输出
7 4 8 9 1 5
4 8 9 1 5 7
8 9 1 5 7 4
9 1 5 7 4 8
1 5 7 4 8 9
5 7 4 8 9 1
求实现方法~~
------最佳解决方案--------------------
public class TestArray {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr=new int[]{7,4,8,9,1,5};
new TestArray().testArray(arr);
}
private void testArray(int[] arr){
for (int i = 0; i < arr.length; i++) {
int[] temp=new int[arr.length];
if(i==0){
temp=arr;
}else{
for (int j = 0; j < temp.length; j++) {
int index=(i+j)%arr.length;
temp[j]=arr[index];
}
}
String str="";
for (int j = 0; j < temp.length; j++) {
str+=temp[j]+" ";
}
System.out.println(str);
}
}
}
------其他解决方案--------------------
package test;
import java.util.Scanner;
public class TestArray {
public static void main(String[] args) {
Scanner read = new Scanner(System.in);
System.out.print("请输入一维数组的个数:");
int n = read.nextInt();
int[] array = new int[n];
System.out.print("请输入一维数组的元素(各个元素以空格隔开):");
for (int i = 0; i < n; i++) {
array[i]=read.nextInt();
}
System.out.println("一维数组产生的二维数组如下:");
new TestArray().testArray(array);
}
private void testArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
int[] temp = new int[arr.length];
if (i == 0) {
temp = arr;
} else {
for (int j = 0; j < temp.length; j++) {