kotlin 如何对具有特定值的数字列表执行动态减法

u4dcyp6a  于 2023-01-17  发布在  Kotlin
关注(0)|答案(1)|浏览(120)

我的想法是通过变量的值减去列表中的每个值,例如:

var subtraction = 250
var list = mutableListOf(300, 200, 100)

然后,使用subtraction变量的250,您可以动态减去该项的每个值,从最后一个到第一个,因此使用250,程序应该返回:- 〉列表(300,50)。其中100项减去250*(最后一项),然后从值“250”中减去“150”,并从200中减去剩余的150**(第二项)并保持为50,从而将**“250”的值清零,程序停止。(300,50)-〉50,它来自200(第二项)。就像我在检查我的数字列表,从最后一项到第一项,逐项减去变量的值。

nuypyhwy

nuypyhwy1#

你的问题还需要进一步澄清:

  • subtraction = 700的输出应该是什么?
  • subtraction = 600的输出应该是什么?
  • subtraction = 100的输出应该是什么?

以下内容可以作为解决您问题的起点:

fun subtraction() {
  var subtraction = 250
  var list = mutableListOf(300, 200, 100)
  // Loop the list in Reverse order
  for (number in list.indices.reversed()) {
    subtraction -= list[number] // Subtract the last number
    // If subtraction is greater than zero, continue and remove the last element
    if (subtraction > 0)
      list.removeAt(number)
    else {
      // It subtraction is less than or equal to zero, 
      // remove the last element, append the final subtraction result, 
      // and stop the loop
      list.removeAt(number)
      list.add(abs(subtraction))
      break
    }
  }
  // If the subtraction result is still positive after whole list has been processed, 
  // append it back to the list
  // if (subtraction > 0)
  //   list.add(subtraction)
  println(list)
}

产出

[300, 50]

相关问题