gpt4 book ai didi

java - 交替打印第一个和最后一个数组 (Java)

转载 作者:行者123 更新时间:2023-11-29 04:20:30 25 4
gpt4 key购买 nike

我有一个作业,我必须打印一个包含这些数字的 double 组:

1, 2, 3, 4, 5, 6, 7

像这样

1, 7, 2, 6, 3, 5, 4

所以第一个和最后一个应该从数组的开头到数组的结尾交替出现。

我知道输出可能会令人困惑,但实际情况是第一个元素应该打印 (1),然后是最后一个元素 (7),然后它必须回到开头并打印以下元素 (3) ,然后回到最后在最后打印下面的元素(6)等

到目前为止,这是我的代码:

    public static void print(double [] a){
int l = a.length-1;
for(int i = 0; i < a.length; i++){
if(a[i] == a[l]){
System.out.print(a[i]);
break;
}
System.out.print(a[i]+", "+a[l--]+", ");
}
}

代码有效,但前提是数组的大小是奇数。我想确保此代码适用于所有类型的大小数组。请帮助

最佳答案

这里的规则相当简单:

  • 打印第一个元素。
  • 打印最后一个元素。
  • 不要将同一个元素打印两次。

就数组而言,您将其视为一口大小的问题。

  • 打印第一个索引。
  • 打印最后一个索引。
  • 增加指向第一个索引的指针。
  • 将指向最后一个索引的指针递减。
  • 如果两个点相同,则 break - 你完成了。

就代码而言,它看起来像这样。请注意,在 Java 中,您可以在循环中声明多个变量并稍后在表达式中使用它们。

int[] values = {1, 2, 3, 2, 1};
// i shouldn't advance beyond the first half of the list.
// j shouldn't advance beyond the second half of the list.
for(int i = 0, j = values.length - 1; i <= values.length/2 && j >= values.length/2; i++, j--) {
// i and j are at the same point - just print it and call it good.
if(i == j) {
System.out.print(values[i]);
break;
} else {
System.out.print(values[i] + " ");
System.out.print(values[j] + " ");
}
}

关于java - 交替打印第一个和最后一个数组 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49543313/

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