gpt4 book ai didi

java - 复制油和水的花招

转载 作者:行者123 更新时间:2023-12-02 12:18:54 27 4
gpt4 key购买 nike

注意:我还没有找到这个特定问题的答案。

背景故事:

我最近学习了魔术师使用的油和水套路(这并不意味着我真的可以做到,但我已经完成了机制)。对于那些不熟悉这个套路的人来说,需要三张红牌和三张黑牌。这些牌最初放在一起是红,黑,红,黑,红,黑。到了这一把戏结束时,所有的红色都回到了一起,所有的黑色也回到了一起。

我已经用 Java 成功地编写了这个代码,但我无法解释为什么它是正确的。我确信我的逻辑有问题,但我需要一些验证。

这是我当前拥有的代码:

  int[] mixed = {1,2,1,2,1,2};

System.out.println("Before Sort: ");
for (int element : mixed){
System.out.println("Element: " + element);
}

for (int element : mixed){//this for loop moves all but the first and last element.
// for (int element=0;element < mixed.length-1;element++){// this for loop reverses order
int temp = mixed[element];
mixed[element]=mixed[element+1];
mixed[element+1]=temp;
}

if ((mixed[0]==1) && (mixed[5]==2)){//this swaps the first and last elements after using an enhanced for loop

int temp = mixed[0];
mixed[0] = mixed[5];
mixed[5] = temp;
}

System.out.println("After sort: ");
for (int element : mixed){
System.out.println("Element: " + element);
}

请务必阅读我在代码中的注释,因为这就是我最糟糕的时刻。我的目标是让我的高中生在击中数组时能够做到这一点。我希望能够像介绍数组一样介绍这一点。任何帮助将不胜感激。

最佳答案

您正在使用数组元素作为所做切换的索引来迭代数组。

您只执行两次相同的切换。

  1. 当当前元素为 1 时,会切换数组索引 1 和索引 2 处的值。
  2. 当当前元素为 2 时,会切换数组索引 2 和索引 3 处的值。

这不起作用;最后你必须手动切换。而此手动开关在其他情况下将不起作用。

正确的方法是:

array 1 2 1 2 1 2
index 0 1 2 3 4 5

开关:

  1. 0 与 1
  2. 1 与 3
  3. 2 加 5

只有 3 个开关,因此循环应从 0 开始,以数组长度/2 结束。

关于java - 复制油和水的花招,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949250/

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