gpt4 book ai didi

java数组打印楔形图案

转载 作者:行者123 更新时间:2023-12-02 05:00:05 26 4
gpt4 key购买 nike

我必须编写一个接受整数的方法(如下所示)。例如,如果 n 为 3,它将打印[1,2,3,2,1]5 将打印[1,2,3,4,5,4,3,2,1]需要第二个 for 循环的帮助!

public static int[] createWedge(int n) {
//precondition: n > 0
int[] arr = new int[n+n-1];
int i;
for(i = 0; i < n; i++) {
arr[i] = i + 1;
}
for(int g = i; g < n; i--) {
arr[g] = g - 1;
}

//dummy return value
return arr;
}

任何帮助都会很棒。谢谢!

最佳答案

Jase 已经发布了正确的答案,但我稍微重写了一下,看看是否有助于您理解

public static int[] createWedge(int n) {
int[] arr = new int[n+n-1];
for (int i = 0; i < n; i++)
arr[i] = i + 1;
for (int g = n - 1, j = n; g > 0; g--, j++)
arr[j] = g;
return arr;
}

就像在第一个循环中一样,我们需要一个不断增加的计数器。这是我们在数组中的位置。在 Jase 的解决方案和这个解决方案中,它被称为 j

但我们还需要另一个计数器下降。这是我们放入数组中的数字。它从 n 倒数到 1。这就是 g 的意思。当 g 等于 0 时我们停止。这就是为什么我们有继续条件 g > 0

您的第一个 for 循环更容易,因为两个计数器相同,即 i。它上升到数组中的位置以及要放入数组中的值。

关于java数组打印楔形图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com