【问题标题】:Printing values using loop使用循环打印值
【发布时间】:2017-04-20 18:35:47
【问题描述】:

如何使用循环打印以下值。 基本上我正在获取数组的大小,如果数组的大小为奇数,则将第一个条目添加到数组的中间。如果是这样,则将第一个条目放在数组的一半以下。就像下面我将1 添加到5th 位置。

然后第二次进入第一个位置。第三个条目到第一个条目的下方。第四个条目到下面到第二个条目。第五个条目到下面到第三个条目,以此类推。

在简单的第一次进入中心,第二次进入顶部,第三次进入中心下方,以此类推。

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

【问题讨论】:

  • 您使用什么语言?你写过一些可以分享的sn-p吗?
  • @hypnos 我在写算法,语言无所谓。

标签: arrays algorithm loops


【解决方案1】:

伪代码的约定因作者而异。这不能就地完成。因此,您需要另一个数组来复制结果。

left = 0, right = res.length/2
for i = 0 to res.length - 1:
    if i is even:
        res[right] = arr[i]
        right++
    else
        res[left] = arr[i]
        left++

arr 是您的原始数组,res 是您要填充的空数组。

【讨论】:

  • 假设res.length=8 然后right=7 在循环i=0 下,这意味着i is even 然后它设置res[7]=arr[0]res[7]=1arr 的第一个元素设置在 5th 位置是错误的
  • 我一定是喝醉了。 right = arr.length/2。我有正确的java代码。这是伪代码中的错字
  • 我修好了。见编辑。将该代码转换为 java 或其他东西并测试它:)
猜你喜欢
  • 2022-12-23
  • 2020-09-11
  • 2017-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多