Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将一维阵列转换为二维阵列,元素对角放置_Java - Fatal编程技术网

Java 将一维阵列转换为二维阵列,元素对角放置

Java 将一维阵列转换为二维阵列,元素对角放置,java,Java,我试了很多次,但没有找到解决办法。我必须将长度为16的1d数组转换为4x4 2d数组,元素在java中呈对角放置 例如。 作为输入的一维数组:{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15} 所需输出: 这很简单: 1-读取一维数组中的值 2-确保阵列的长度为16 3-创建二维数组 4-For循环中的一维数组 5-使用嵌套for循环,将值从一维数组存储到二维数组(伪代码;只是给你一些随机的想法;我没有测试它;我假设它可以工作,但可能包含一些错误): input=数组

我试了很多次,但没有找到解决办法。我必须将长度为16的1d数组转换为4x4 2d数组,元素在java中呈对角放置

例如。 作为输入的一维数组:{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}

所需输出:

这很简单:

1-读取一维数组中的值

2-确保阵列的长度为16

3-创建二维数组

4-For循环中的一维数组

5-使用嵌套for循环,将值从一维数组存储到二维数组(伪代码;只是给你一些随机的想法;我没有测试它;我假设它可以工作,但可能包含一些错误):

input=数组[n*m];
输出=数组[m][n];
var i=0;
var x=0;
var y=0;
while(i
需要注意的是,这并不是最有效的方法,但应该是可行的

重要,如果这是一些家庭作业:
虽然Stackoverflow是用来回答这些问题的,但您应该始终提供一些最少的代码来向其他人展示您的尝试。这样我们就可以告诉你哪里出了错。不要让别人为你写所有的代码,因为你不会从中学习。因此,我强烈建议您尝试上面的代码,但前提是您能够理解实际发生的情况。一旦你这样做了,你就可以开始自己实现它,只有当你陷入困境时才去看。

啊。。好问题,对于
nxn
问题:

int i = 0;
for (int diagonal_length = 1; diagonal_length <= n; ++diagonal_length) {
    for (int j = 0; j < diagonal_length; j++) {
        out[diagonal_length - j - 1][j] = in[i];
        ++i;
    }
}
inti=0;

对于(int diagonal_length=1;diagonal_length请发布您的代码/想法。您的输出是1D数组。4x4 2d数组?很抱歉,您可以发布您已经尝试过的代码以及出错的地方吗?这看起来像是家庭作业。如果这是家庭作业:虽然Stackoverflow旨在回答此类问题,但您应该始终向s提供一些最小的代码其他人如何看待你的尝试。通过这种方式,我们可以告诉你在哪里犯了一些错误(->为你提供更好的学习经验)。不要让其他人为您编写所有代码,因为您不会从中学习。答案是thx,但我要求输出与图像中提供的类似。您好,我只做了这件事,但它将导致一个随机放置数字的数组。我希望元素按图像中给出的方式对角放置。您是如何实现的蒙特·纳吉斯的答案?第四点和第五点没有提出任何具体的算法,只是一般的方法。如果你得到随机输出,你很可能写了一些答案中没有的东西。:)输出是正确的:-)谢谢这是在一次采访中问到的,我无法解决它。很好的解决方案看看这个程序,问题完全解决了。
int i = 0;
for (int diagonal_length = 1; diagonal_length <= n; ++diagonal_length) {
    for (int j = 0; j < diagonal_length; j++) {
        out[diagonal_length - j - 1][j] = in[i];
        ++i;
    }
}