首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

求教!解决思路

2012-12-24 
求教!!题目描述【问题描述】给一维数组输入M个整数,假设M6,数组元素分别为 748915 ,要求建立一个如下数组(

求教!!
题目描述
【问题描述】
    给一维数组输入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

好像看明白了,你是要一个二维数组?

int[] array = {7, 4, 8, 9, 1, 5};
int[][] result = new int[array.length][];
for(int i = 0; i < array.length; i ++){
result[i] = new int[array.length];
for(int j = 0; j < array.length; j ++){
result[i][j] = array[(i + j) % array.length];
}
}
for(int[] arr : result){
for(int v : arr)
System.out.print(v);
System.out.println();
}

[解决办法]
要二维数组也非常简单,稍微改改就行了:


    public static void main(String[] args) {
        System.out.println("请直接输入一组单个数字,并以空格分隔:"); // 不需要输入总数了
        String[] nums = new Scanner(System.in).nextLine().split("\\s"); // 空格进行分隔
        System.out.println("您总共输入了 " + nums.length + " 个数字,构成矩阵如下:");
        int[][] result = new int[nums.length][nums.length]; // 保存最后转换得到的二维数组
        for (int i = 0; i < nums.length; i++) { // 外层循环控制行
            for (int j = 0; j < nums.length; j++) { // 内层循环控制逐个输出
                System.out.print(nums[(i + j) % nums.length] + " "); // 主要就是个 取模 运算了
                result[i][j] = nums[(i + j) % nums.length]; // 仍然是取模运算


            }
            System.out.println(); // 换行
        }
    }



你不懂那句话,说明你没有从计算机的思路上来分析 你所需要数组其元素的变化特点。

热点排行