需要帮助解决java程序级联puzzel

时间:2017-06-15 19:17:25

标签: java

我正在解决一个问题。他们将是2个参数。假设我给a = 7然后7将是最大值,如果b给1那么它将从a中删除2b和2b + 1。即1,2和3将被删除,这些2,3将再次成为参数。

ok if
input 1 =7
input 2 =1 
input 3 ={1}
 input3 i.e {1} will clear 2i and 2i+1 so {2,3} and {2,3} will clear{4,5,6,7}


output={0}

and if 
input 1 =7
input 2 =2
input 3 ={2,7}

output={1,3,6}

{2,7}所以2将清除2以及4和5.但是7将仅清除7.因此我们将获得1,3,6。我希望现在有点清楚

 Arraylist li = new arraylist{1,2,3,4,5,6,7}

    if(2b>n and 2b+1>n)

    li.remove{2b}
    li.remove{2b+1}.

但是如何重复使用它。

1 个答案:

答案 0 :(得分:0)

你需要一种在满足条件时结束的循环。你的答案中不清楚这种情况,但我想它应该在2b + 1 < a时继续。

你会得到这样的东西(请注意,这是伪代码,我会把真正的代码留给你作为拼图):

li = arraylist(1,2,3,4,5,6,7)
a = 7
b = 1

while(2b+1 < n) {
  // Remove items
  li.remove(2*b)
  b = li.removeAndGetValue(2*b+1)

  // Reduce a by 2
  a = a - 2
}

在此代码b中更新了li[2*b+1]的值(正如我从您的问题中所理解的那样,但它有点模糊)