How to increment an integer represented as an integer list of digits by one in Scala

1 Answer

0 votes
object DigitIncrementer {
  def incrementByOne(digits: List[Int]): List[Int] = {
    val reversed = digits.reverse
    val (result, carry) = reversed.foldLeft((List[Int](), 1)) {
      case ((acc, carry), digit) =>
        val sum = digit + carry
        if (sum == 10) (0 :: acc, 1)
        else (sum :: acc, 0)
    }
    
    if (carry == 1) 1 :: result else result
  }

  def main(args: Array[String]): Unit = {
    val digits = List(9, 9, 9)
    val incremented = incrementByOne(digits)
    
    print("Result: ")
    println(incremented.mkString(" "))
  }
}


 
/*
run:

Result: 1 0 0 0

*/

 



answered Jul 2, 2025 by avibootz
...