How to increment an integer represented as an integer array of digits by one in Go

1 Answer

0 votes
package main

import (
    "fmt"
)

func incrementByOne(digits []int) []int {
    carry := 1
    for i := len(digits) - 1; i >= 0; i-- {
        digits[i] += carry
        if digits[i] == 10 {
            digits[i] = 0
            carry = 1
        } else {
            carry = 0
            break
        }
    }
    if carry == 1 {
        digits = append([]int{1}, digits...)
    }
    
    return digits
}

func main() {
    digits := []int{9, 9, 9}
    
    result := incrementByOne(digits)
    
    fmt.Print("Result: ")
    for _, digit := range result {
        fmt.Printf("%d ", digit)
    }
}


/*
run:

Result: 1 0 0 0 

*/



 



answered Jul 2 by avibootz
...