[英]java array printing wedge pattern
我必须编写一个方法,其中需要一个整数(如下所示)。 例如,如果n为3,它将打印[1,2,3,2,1],而5将打印[1,2,3,4,5,4,3,2,1]需要帮助环!
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;
}
任何帮助都会很棒。 谢谢!
尝试这个。 遍历前半部分1-n,然后遍历下半部分n-1至1。
for (int i = 0; i < n; i++)
arr[i] = i + 1;
int j = n;
for (int g = n - 1; g > 0; g--)
arr[j++] = g;
j也可以称为位置,因为它跟踪设置为该值的数组中的位置。
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
。 它上升到数组中的位置并增加了要放入数组中的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.